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!

War es hilfreich?

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,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top