Ce dont vous avez besoin : Une seule étiquette, vous pouvez lui donner n'importe quel nom mais dans ce cas Label1 est notre étiquette, et le nom du fichier du formulaire est Form1.vb mais bien sûr vous pouvez le changer.
Ce qu'il vous reste à faire : Modifier le texte scrollLabel(15) dans les deux cas pour lui donner la vitesse souhaitée. Le temps est en millisecondes, entre les itérations.
Il y a probablement une meilleure façon de procéder, mais voici mon meilleur essai :
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
Remarquez que IsClosed aide à interrompre la boucle pour s'assurer que l'application ne continue pas une fois qu'elle est fermée.
En outre, si l'utilisateur a redimensionné le formulaire pendant le défilement, il se peut que l'étiquette saute lorsqu'elle touche le côté gauche, mais cela se corrigera une fois qu'elle aura effectué une boucle complète.