vb中的left怎么用啊

来源:百度知道 编辑:UC知道 时间:2024/05/07 13:24:59
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

Left(a,N) 从左起第一位开始取值,向右取N位
举例:设a="Visual Basic"
b=a.Left(a,9)
返回:b="Visual Ba"
它也只有一个参数,Right(a,M,N)的写法是错的。

为方便祥解,做了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这条件又继续进行上面的动作,如此循环。

楼上回答详细,补充一下: