VB.NET文本动画

apo*_*neo 2 vb.net animation

我正在使用VS2010和Windows 7进行滚动文本动画.我有一个文本框,标签和一个按钮,当然还有一个计时器来完成这项工作.以下是我放入计时器的代码.

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Label1.Text = TextBox1.Text
    Timer1.Interval = 1000
    Timer1.Start()

End Sub

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    'Dim txtBuffer As String = TextBox1.Text
    Label1.Text = Label1.Text
    If Len(Label1.Text) <> 0 Then
        Label1.Text = Microsoft.VisualBasic.Right(Label1.Text, (Len(Label1.Text) - 1))
    Else
        Timer1.Enabled = False
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我的问题是当你在字符串的开头输入一定量的空间时,滚动动画有点奇怪.它不会显示字符串从右侧移动到标签中,但只显示整个字符串然后开始滚动出标签的左边界.

我使用固定长度的标签,我的目的是模拟留言板,因此文本可以从右侧滚动到msg框并从左侧移出.

我每次触发计时器时都会进行调试,并且一定数量空间的字符串头一个接一个地消失.但我没有在标签上看到预期的动画.

标签的大小为7个大写字母的宽度,AutoSize属性为false.如果你输入的文本框中是"[7 space] ABCDEFG",那么你会期望滚动效果是"[7 space]" - >"[6 space] A" - >"[5 space] AB" - > "[4 space] ABC" - > ...->"ABCDEFG" - >"BCDEFG" - >"CDEFG" - > ...->"".但你不会得到它.所有你会得到的是"[7空间]"一段时间,然后突然出现"ABCDEFG",然后这些字母一个接一个地消失.字符串看起来不像是从标签区域的右侧滑入.

我不知道是否有人可以提供帮助,或者有更好的想法来实现这个动画?谢谢!

Lar*_*ech 5

只是在面板控件内移动标签比尝试找出字符测量值等更容易,以便让文本右侧开始然后向左移动:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  Label1.AutoSize = True
  Label1.Text = TextBox1.Text
  Label1.Parent = Panel1
  Label1.Location = New Point(Panel1.ClientSize.Width, _
                              Panel1.ClientSize.Height / 2 - (Label1.Height / 2))
  Timer1.Start()
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  If Label1.Right < 0 Then
    Label1.Left = Panel1.ClientSize.Width
  Else
    Label1.Left -= 10
  End If
End Sub
Run Code Online (Sandbox Code Playgroud)