第一步:想要移动到右上的话还要该left属性。picBall.Left = 1500 - i /4860 * 1500
' i /4860 * 1500的意义应该是显而易见的吧...就是平滑地沿直线挪到右边(竖直运动和水平运动同时结束.)
第二步:[最好加上] 在 next i 前加入语句DoEvents ‘用在循环中可以使程序有机会更新窗体图像(显示出移动过程。),也可以防止假死。
改完后应该是:
Private Sub cmdOk_Click()
picBall.Top = 4680
picBall.Left = 0
For i = 4680 To 0 Step -0.01
picBall.Left = 1500 - i / 4860 * 1500
picBall.Top = i
DoEvents
Next i
End Sub
加个timer,interval设为50
Timer事件:
Private Sub timer1_timer()
picball.Left = picball.Left + 10
picball.Top = picball.Top - 10
If picball.Left = 1500 Or picball.Top = 0 Then
picball.Left = 0
picball.Top = 4680
End If
End Sub