3个回答
展开全部
哦,呵呵。
你判断距离边界距离啊,某个标签到左边界和右边界距离之差啊。他们等于最大值时候肯定是到边界了,同理,上下之差也可以得到上下边界判断啊。所以到边界的时候,就让他边界的值变化就完了。
比如,左边界-右边界=400,假定窗体大小刚好是400,(标签大小忽略)
则肯定是到了由边界,那么,你就让由边界增加,让左边界减少就行了
下次继续判断,如果等结果到-400了, 那肯定是到左边界了,你再让右边界减小,左边界增大就可以了!
这样看到的效果就是标签来回晃动了!
你判断距离边界距离啊,某个标签到左边界和右边界距离之差啊。他们等于最大值时候肯定是到边界了,同理,上下之差也可以得到上下边界判断啊。所以到边界的时候,就让他边界的值变化就完了。
比如,左边界-右边界=400,假定窗体大小刚好是400,(标签大小忽略)
则肯定是到了由边界,那么,你就让由边界增加,让左边界减少就行了
下次继续判断,如果等结果到-400了, 那肯定是到左边界了,你再让右边界减小,左边界增大就可以了!
这样看到的效果就是标签来回晃动了!
展开全部
创建一个 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
复制代码看效果
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明白你想达到什么目的,你想要label标签中的文字过多直接换行?这个不行,你只能在代码中加入换行符!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询