用vb设计字幕滚动程序,要求label先向右移,碰到form1最右边的边框后向左移。请问我的设计哪里错了

command1:开始移动,command2:结束移动... command1:开始移动,command2:结束移动 展开
 我来答
tianqing20wen

2012-04-14 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5120万
展开全部
dim x as integer 需要放在代码的最上面 而不是放在过程里 过程里只是局部变量
而且不管label是该向左或向右移动的时候你代码 都是无条件的让x=100
那么你If里的 x=-100 就完全失去意义 条件满足后赋值成功 但是还没执行label1.left=label1.left+x
的时候100又变回100了
我给你正确的 如下
Dim x As Integer
Dim bln As Boolean
Private Sub Timer1_Timer()
Label1.Left = Label1.Left + x
If Label1.Left >= Form1.ScaleWidth - Label1.Width Then bln = True
If Label1.Left <= 0 Then bln = False
If bln = True Then x = -100 Else x = 100
End Sub
归萱pN
2012-04-14 · TA获得超过990个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1496万
展开全部
'给你重写一下,速度自己调节:
Option Explicit
Dim n As Integer, k As Integer
Private Sub Command1_Click()
Timer1.Interval = 100
End Sub
Private Sub Command2_Click()
Timer1.Interval = 0
End Sub
Private Sub Form_Load()
Label1.AutoSize = True
n = 1000: k = 1
End Sub
Private Sub Timer1_Timer()
With Label1
.Left = .Left + k * n
If .Left <= 0 Then
.Left = 0
k = 1
End If
If .Left + .Width >= Me.ScaleWidth Then
.Left = Me.ScaleWidth - .Width
k = -1
End If
End With
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式