Vb.net 图片盒(移动)

Vb.net 图片盒(移动),vb.net,visual-studio-2015,Vb.net,Visual Studio 2015,使用代码 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick slides += 1 If slides <= 10 Then PictureBox1.Left += 50 ElseIf slides >= 11 Then PictureBox1.Left -= 50 Else slides = 0

使用代码

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    slides += 1
    If slides <= 10 Then
        PictureBox1.Left += 50
    ElseIf slides >= 11 Then
        PictureBox1.Left -= 50
    Else
        slides = 0
    End If
End Sub
图片框将向右滑动/移动,然后一旦它到达屏幕的右端,它将向左移动,这正是我想要它做的。。。除了但它一直向左移动并经过屏幕的左端,我应该向代码中添加什么,使它在到达屏幕左端时返回向右滑动??
基本上,我希望它保持从右到左到右来回滑动,以此类推。

你从不重置幻灯片,所以它永远不会进入技巧是使用Mod,将2个数字除以,只返回余数。这有点粗糙,但与幻灯片Mod 20<10和幻灯片Mod 20>11类似,你介意解释一下数字的作用吗,我知道picbox1.left+=是速度,我想,但我不知道slide=的作用,当“If slides=20”是这样时,它会起作用,但它会很快回到右边,所以我试着把20改成15,然后改成25,结果它突然停止了工作。@RDR它使用幻灯片来控制在切换之前它在每个方向上移动了多少次。幻灯片1至10将其向右移动,幻灯片11至20将其向左移动。如果你改变20而不改变10和11,你会得到奇怪的结果,因为这两个方向不相等。50是它随每个刻度移动的像素数,因此您也可以将该数字修改为等于客户区宽度减去PictureBox宽度除以10,因为10是每个方向的幻灯片数。ClientSize.Width-PictureBox1.Width/10可能会起作用。我试着从1到9再到10到19,然后图片一直向左移动,再也没有向右移动。但是,当我使用你的示例代码时,它工作得很好,只是图片撞到右边的墙后向左移动,它停在正中间,然后向右移动。
slides += 1
If slides <= 10 Then
    PictureBox1.Left += 50
ElseIf slides >= 11 Then
    PictureBox1.Left -= 50
    If slides = 20 Then slides = 0 ' Reset here so it goes back again.
Else
    slides = 0
End If