Gibt es eine Visual Basic 2008 Lauftext-Code?
Frage
Ich möchte einen Code, der bei der Anwendung in Visual Basic 2008 es rollt über den Bildschirm in Text. Ich will nicht, etwas schrill, nur etwas einfach mit zu beginnen. Wenn Sie Jungs wissen, von einer solchen Sache das wäre toll!
EDIT:
Ich möchte es mit dem Fahrrad, hoffen, dass dies macht es einfacher!
Lösung
Was Sie brauchen:. Ein einzelnes Etikett, können Sie es etwas nennen, aber in diesem Fall Label1 ist unser Label und die Form Dateiname ist Form1.vb aber natürlich kann man das ändern
Was Sie noch tun müssen: den Text bearbeiten Scroll (15) in beiden Fällen ist es die Geschwindigkeit, die Sie wollen zu machen. Es ist in Millisekunden zwischen Iterationen.
Es gibt wahrscheinlich einen besseren Weg, dies zu tun, aber hier ist mein Beste:
Public Class Form1
Dim IsClosed As Boolean = False
Private Sub wait(ByVal time)
Dim sw As New Stopwatch
sw.Start()
Do While sw.ElapsedMilliseconds < time
Application.DoEvents() 'Lets our UI remain active
Loop
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
IsClosed = True
End Sub
Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
scrollLabel(15)
End Sub
Private Sub scrollLabel(ByVal time)
Dim passed As Boolean = False 'Indicates whether or not we have passed the initial bounds of the form
Dim startX As Integer = Label1.Bounds.X
For i As Integer = 0 To Me.Bounds.Width + Label1.Bounds.Width Step 1
wait(time)
Label1.SetBounds(Label1.Bounds.X - 1, Label1.Bounds.Y, Label1.Bounds.Width, Label1.Bounds.Height)
If i > Me.Width - startX And passed = False Then
Label1.SetBounds(Me.Width, Label1.Bounds.Y, Label1.Bounds.Width, Label1.Bounds.Height)
passed = True
End If
If IsClosed = True Then
Return
End If
Next
scrollLabel(15)
End Sub
End Class
Beachten Sie, wie IsClosed hilft, die Schleife zu brechen die Anwendung, um sicherzustellen, nicht weiter, wenn es geschlossen ist.
Auch wenn der Benutzer das Formular Größe verändert hat, während er rollt es das Etikett führen kann zu springen, wenn es auf der linken Seite trifft, aber das wird sich korrigieren, sobald es eine vollständige Schleife abgeschlossen hat.
Andere Tipps
Es ist einfacher mit einem Timer:
Lable.Text = Lable1.Text.Substring(1) & Lable1.Text.Substring(0, 1)
Setzen Sie diesen Code Timer und Timer auf Formularlade starten, ist, wie Sie es verwenden können,