vb中的left怎么用啊

Private Sub Timer1_Timer()
If Label1.Left < 0 - Label1.Width Then
Label1.Left = Me.Width
Else
Label1.Left = Label1.Left - 20
End If
End Sub
不明白这个程序为什么当文本移出窗体左边界时,使文本移到窗体最右侧
谁能把第二,三,五句详细的讲解一下啊??
谢谢啦!!

Private Sub Timer1_Timer()
If Label1.Left < 0 - Label1.Width Then
'left,就是控件最左边缘在屏幕中的位置, 你这样想,如果控件的left=0了,就说明控件紧挨着窗体的左边缘了, 可是这时候,让它转换到右边去,就会不完美, 比如这个标签的宽度(Label1.Width )是100的话,那么,如果label1的left值是-100时,就是完全移动,直到消失在窗体的最左边了..这时候就可以执行后面的代码了.

Label1.Left = Me.Width
'(Me.Width )就是窗体的宽度,让label1的left等于窗体的宽度时,就相当于,一下子让label1跑到了窗体的最右边,且在窗体以外的地方..通过下面的逐渐减小left值,就能慢慢的进入窗体了.

Else
Label1.Left = Label1.Left - 20
'这个就是移动这个label1控件了,不断在通过timer1的事件,来减小这个值..结合上面的代码,就是你的问题了呵.
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17
Left(a,N) 从左起第一位开始取值,向右取N位
举例:设a="Visual Basic"
b=a.Left(a,9)
返回:b="Visual Ba"
它也只有一个参数,Right(a,M,N)的写法是错的。
第2个回答  2007-10-30
楼上回答详细,补充一下:
VB的 界面大多数都是使用 移动控件到屏幕外侧 的方法来实现更新的,
因为这样控制起来速度快些,通常用在下面的情况:
一个控件要加载大量数据,如果直接显示并更新,那么程序将呈现假死状态,如果你把这个控件放在屏幕外侧,等加载完毕再一次性拿出来速度将快出许多!
第3个回答  2007-10-30
为方便祥解,做了1。2。3注释:
1:If Label1.Left < 0 - Label1.Width Then
2:Label1.Left = Me.Width
3:Label1.Left = Label1.Left - 20
'当Label移出窗体左边界时,然后立刻被移到窗体最右侧,这时因为是最右侧,不符合1 条件,则执行下面的条件3 ,只要不符合1条件,则一直执行3条件,即往窗体的左边移动,直到移动符合1这条件又继续进行上面的动作,如此循环。
第4个回答  2007-10-31
别人都回答了,我也没的说了,不过想起这个东西了,给我记忆最深的就是我用这个东西和timer控件做幻灯片,写了好多的这个东西饿~呵呵