VB中如何编程标签碰到窗体边框时反弹

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:50:32
如题

创建一个 timer 一个label
复制代码看效果

Dim x, y As Integer
Private Sub Form_Load()
Label1.Height = 500
Label1.Width = 600
x = 50: y = 50 '速度
Timer1.Interval = 10
End Sub
Private Sub Timer1_Timer()
If Label1.Left < 0 Then x = -x
If Label1.Left + Label1.Width > Form1.Width Then x = -x
If Label1.Top < 0 Then y = -y
If Label1.Top + Label1.Height > Form1.Height Then y = -y
Label1.Left = Label1.Left + x
Label1.Top = Label1.Top + y
End Sub

哦,呵呵。
你判断距离边界距离啊,某个标签到左边界和右边界距离之差啊。他们等于最大值时候肯定是到边界了,同理,上下之差也可以得到上下边界判断啊。所以到边界的时候,就让他边界的值变化就完了。
比如,左边界-右边界=400,假定窗体大小刚好是400,(标签大小忽略)
则肯定是到了由边界,那么,你就让由边界增加,让左边界减少就行了
下次继续判断,如果等结果到-400了, 那肯定是到左边界了,你再让右边界减小,左边界增大就可以了!
这样看到的效果就是标签来回晃动了!