VB中label的左移,求助各位VB高手

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:14:40
使VB中label控件左移,但要求移动到左边界时,消失的label上的字立即从右侧出现,例如:百度知道这四个字,当“百”移出窗体,只剩“度知道”时,“百”字立即从窗体右侧出现。是不是用什么控件能实现此功能?

不用控件,当然你也可以把代码封装成控件来用。

几位朋友说的方法都有一个共同的缺点就是百字移出的时候不能立即从右侧出现,而是要等所有字从左侧消失后才能出现,我在这里提供另外三种办法:1、把每个字放到不同的Label中,可以实现;2、用API把Text DrawText上去,不断清除不断重绘。同时用时钟来控制。3、直接用DirectDraw。比较这三种方法第一种实现起来最简单,查是字在移动时候会有闪烁感;第二种需要有一定的API开发基础;第三种效果最好,但需要有DirectX开发基础。我个人比较倾向于第二种。

Private Sub Form_Load()
Me.Show
Me.FontSize = 18 '窗体的字体大小要与label1的一样
Label1.FontSize = 18
Label1.Caption = "百度知道"
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
Label1.Left = Label1.Left - 100
If Label1.Left + TextWidth("百度知道") / 4 < 0 Then
Label1.Left = Me.ScaleWidth
End If
End Sub

用两个label控件

当label1移到指定地方时,label2移动

当label2移到指定地方时,label1移动

如此反复即可

if label1.left= -(label1的长度) then label1.left=(窗体的宽度)

以下代码能实现楼主想要的功能:
百度知道这四个字,当“百”移出窗体,只剩“度知道”时,“百”字立即从窗体右侧出现。
实现思路:
窗体上拖放四个label控件,label1到label4,其caption属性分别为“百”“