label循环移动 vb
我希望做出这样的效果:label在一个范围内(最好不是窗体边界)一直从右至左的移动,最重要的是:当label有多长进入所设定的范围边界(即看不到了),那么从左边就会有多长...
我希望做出这样的效果:label在一个范围内(最好不是窗体边界)一直从右至左的移动,最重要的是:当label有多长进入所设定的范围边界(即看不到了),那么从左边就会有多长显示出来。不是要等到全部消失了才从左边出来。
不知道我把问题说明白没有。举个例子吧,假如caption为:循环移动。【 】分别代表左右边界。某个时间点【循环移动 】,下个时间点【环移动 循】。当然,并不是说非得每次前进一个字符。
跪求各位大虾,在线等待ing
非常感谢luojianshu。他/她的代码相当正确,我会给他/她分的。但是我还有小问题,就是如何自己设定边界,而不是以窗体的边界为边界,即我希望label能在left=500的时候就开始逐渐消失,并从离窗体右边界500处开始显现。回答者我依然给分。 展开
不知道我把问题说明白没有。举个例子吧,假如caption为:循环移动。【 】分别代表左右边界。某个时间点【循环移动 】,下个时间点【环移动 循】。当然,并不是说非得每次前进一个字符。
跪求各位大虾,在线等待ing
非常感谢luojianshu。他/她的代码相当正确,我会给他/她分的。但是我还有小问题,就是如何自己设定边界,而不是以窗体的边界为边界,即我希望label能在left=500的时候就开始逐渐消失,并从离窗体右边界500处开始显现。回答者我依然给分。 展开
2个回答
展开全部
这是我QQ651254459
先加两个label和一个timer控件
Private Sub Form_Load()
Label1.Left = Form1.ScaleWidth
Label2.Left = Form1.ScaleWidth
Label1.Top = Form1.ScaleHeight / 2
Label2.Top = Form1.ScaleHeight / 2
Label2.Width = Label1.Width
Label2.Height = Label1.Height
Label2.BackColor = vbRed
Label1.BackColor = vbRed
Timer1.Enabled = True
Timer1.Interval = 10
End Sub
Private Sub Timer1_Timer()
Label1.Left = Label1.Left - 30
If Label1.Left < 0 Then Label2.Left = Label2.Left - 30
If Label1.Left < -Label1.Width Then Label1.Left = Label2.Left: Label2.Left = Form1.ScaleWidth
End Sub
先加两个label和一个timer控件
Private Sub Form_Load()
Label1.Left = Form1.ScaleWidth
Label2.Left = Form1.ScaleWidth
Label1.Top = Form1.ScaleHeight / 2
Label2.Top = Form1.ScaleHeight / 2
Label2.Width = Label1.Width
Label2.Height = Label1.Height
Label2.BackColor = vbRed
Label1.BackColor = vbRed
Timer1.Enabled = True
Timer1.Interval = 10
End Sub
Private Sub Timer1_Timer()
Label1.Left = Label1.Left - 30
If Label1.Left < 0 Then Label2.Left = Label2.Left - 30
If Label1.Left < -Label1.Width Then Label1.Left = Label2.Left: Label2.Left = Form1.ScaleWidth
End Sub
展开全部
Dim i As Integer
Private Sub Form_Load()
i = Label1.Width
End Sub
Private Sub Timer1_Timer()
Label2.left = Label2.left - 30
Label1.left = Label1.left - 30
Call SetTime(500, 500)
End Sub
Function SetTime(left As Integer, right As Integer)
If Label2.left < left Then
If left - Label2.left < i Then
Label1.Width = left - Label2.left
Label2.Width = i + Label2.left - left
Else
Label2.left = Label1.left
End If
End If
If Label2.left < left And Label2.left > left - 31 Then
Label1.left = Me.Width - right
End If
End Function
Private Sub Form_Load()
i = Label1.Width
End Sub
Private Sub Timer1_Timer()
Label2.left = Label2.left - 30
Label1.left = Label1.left - 30
Call SetTime(500, 500)
End Sub
Function SetTime(left As Integer, right As Integer)
If Label2.left < left Then
If left - Label2.left < i Then
Label1.Width = left - Label2.left
Label2.Width = i + Label2.left - left
Else
Label2.left = Label1.left
End If
End If
If Label2.left < left And Label2.left > left - 31 Then
Label1.left = Me.Width - right
End If
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询