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
展开
 我来答
yfcp
推荐于2016-03-09 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
采纳数: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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hhglzgcz
2014-10-31 · TA获得超过960个赞
知道小有建树答主
回答量:1800
采纳率:54%
帮助的人:450万
展开全部
 '我的代码完美实现 采纳我吧 就是照你的思想做的,多加一个时间控件 就行了
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式