vb timer控件控制label事件移动的往返
label事件只能够到达右侧,然后就停止不动了,代码如下,哪里出问题了啊PrivateSubCommand1_Click()Timer1.Enabled=TrueEndS...
label事件只能够到达右侧,然后就停止不动了,代码如下,哪里出问题了啊
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Form_Load()
Timer1.Interval = 10
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
If (Label1.Left < Form1.Width - Label1.Width) Then
Label1.Left = Label1.Left + 100
End If
If (Label1.Left = Form1.Width - Label1.Width) Then
Label1.Left = Label1.Left - 100
End If
End Sub 展开
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Form_Load()
Timer1.Interval = 10
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
If (Label1.Left < Form1.Width - Label1.Width) Then
Label1.Left = Label1.Left + 100
End If
If (Label1.Left = Form1.Width - Label1.Width) Then
Label1.Left = Label1.Left - 100
End If
End Sub 展开
3个回答
推荐于2016-03-09 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1748
获赞数:5545
有多年网站建设相关工作经验。熟悉ASP、ASP.net、VB、JavaScript、HTML等语言和CSS、Ajax等相关技术。
向TA提问 私信TA
关注
展开全部
循环从左到有
Private Sub Timer1_Timer()
If (Label1.Left < Form1.Width - Label1.Width) Then
Label1.Left = Label1.Left + 100
End If
If (Label1.Left >= Form1.Width - Label1.Width) Then'改这里
Label1.Left = 0
End If
End Sub
从左到右 然后 从右到左,用下面这个代码
Dim x As Boolean
Private Sub Timer1_Timer()
Dim a&, b&, c&
a = Label1.Left
b = Form1.Width
c = Label1.Width
If (a <= 0) Then
x = False
ElseIf (a >= b - c) Then
x = True
End If
If x Then Label1.Left = a - 100 Else Label1.Left = a + 100
End Sub
追问
我是希望label事件从右面返回到左面,不是从左面重新开始。
追答
已经给你做了第二个方案了。
Dim x As Boolean
Private Sub Timer1_Timer()
Dim a&, b&, c&
a = Label1.Left
b = Form1.Width
c = Label1.Width
If (a <= 0) Then
x = False
ElseIf (a >= b - c) Then
x = True
End If
If x Then Label1.Left = a - 100 Else Label1.Left = a + 100
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'我的代码完美实现 采纳我吧 就是照你的思想做的,多加一个时间控件 就行了
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Form_Load()
Timer2.Interval = 10
Timer1.Interval = 10
Timer2.Enabled = False
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Label1.Left = Label1.Left + 100
If Label1.Left > Form1.Width - Label1.Width Then
Timer2.Enabled = True
Timer1.Enabled = False
End If
End Sub
Private Sub Timer2_Timer()
Label1.Left = Label1.Left - 100
If Label1.Left < 0 Then
Timer1.Enabled = True
Timer2.Enabled = False
End If
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-10-31
展开全部
If (Label1.Left >= Form1.Width - Label1.Width) Then ‘改成大于等于,因为不可能是正好相等的
Label1.Left = Label1.Left - 100
End If
Label1.Left = Label1.Left - 100
End If
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询