哪位高手知道VB中反弹的问题程序怎么写啊?

来源:百度知道 编辑:UC知道 时间:2024/07/05 03:57:01
Dim step1 As Integer
Private Sub form_load()
step1 = 1
Timer1.Interval = 0
End Sub
Private Sub command2_click()
Timer1.Interval = 0
Call mymove
End Sub
Private Sub command1_click()
Timer1.Interval = 200

End Sub
Private Sub timer1_timer()
Static flag As Boolean
If flag Then Label1.ForeColor = &HFFFFFF Else Label1.ForeColor = HO&
flag = Not flag
Call mymove

End Sub
Public Sub mymove()
'Label1.Move Label1.Left + 200 * step1
Label1.Left = Label1.Left + 200 * step1

If Label1.Left > Form1.Width Then
step = -1
ElseIf Label1.Left < 0 Then
step1 = 1
End If

End Sub
这是编一个LABEL控件自动或手动控制其左右移动的题目,到达窗体边缘就反向走,上面的程序是摘自大学VB程序设计例1的程序,可是运行结果就是不对,它走到窗体边上是继续,而不往回走,请各位高手帮帮忙,小弟下学期考2级了,希望告诉我错误的原因,或告诉我真确的程序,谢谢!

step = -1 写错了,应该是 step1=-1

强烈建议以后写程序 在前面加上option explicit

把最后一个sub改一下,把两段代码换个位
Public Sub mymove()
If Label1.Left > Form1.Width Then
step = -1
ElseIf Label1.Left < 0 Then
step1 = 1
End If
'Label1.Move Label1.Left + 200 * step1
Label1.Left = Label1.Left + 200 * step1
看看这样行不行?

时候不早了,我先睡了,等我起来再上机解决