为什么这段代码中的循环不起作用?

时间:2015-12-06 22:18:28

标签: vb.net loops

我不明白为什么它不起作用,我已经尝试了For循环,直到循环并执行while循环,但他们只是不想工作。没有循环,它工作得很好,但我想使用循环来减少正在使用的代码行。 “Hub”使用MoveHub.MoveUp(10)调用此类,MoveDown也是如此,但它就像什么都没做。有什么建议吗?

我已经在Hub表单中测试了所有内容,代码没有问题。这是导致问题的MoveHub类。

以下是代码:

Public Class MoveHub

    Public pos As Integer
    Public toggle As Boolean

    Public Sub MoveUp(speed As Integer)
        If (pos > 0) Then
            '  For Me.pos = 9 To 0
            Do Until pos = 0
                pos -= 1
                Hub.Location = (New Point(Hub.Location.X, Hub.Location.Y - speed))
                If pos = 0 Then
                    Hub.DragPic.Image = My.Resources.DropPicture4
                    toggle = True
                End If
            Loop
            ' Next
        End If
    End Sub

    Public Sub MoveDown(speed As Integer)
        If (pos < 10) Then
            'For Me.pos = 0 To 9
            Do Until pos = 9
                pos += 1
                Hub.Location = (New Point(Hub.Location.X, Hub.Location.Y + speed))
                If pos = 9 Then
                    Hub.DragPic.Image = My.Resources.DropPicture4_Up
                    toggle = False
                End If
            Loop
            'Next
        End If
    End Sub

End Class

1 个答案:

答案 0 :(得分:1)

我认为你正在调用MoveUp(10)和asusme,循环将运行10次。

这个假设是不正确的。因为接收传递值10的参数是速度。而循环由变量pos控制。

如果我的假设不正确,那么你需要提供调用这些方法的代码以及设置pos的值。