Pregunta

Quiero un código que, cuando se aplica al texto en Visual Basic 2008, se desplaza por la pantalla. No quiero nada llamativo, solo algo básico para comenzar. Si ustedes saben de algo así, ¡sería genial!

EDITAR:

Me gustaría que fuera un ciclo, ¡espero que esto lo haga más fácil!

¿Fue útil?

Solución

Lo que necesita: una sola etiqueta, puede ponerle el nombre que quiera, pero en este caso Label1 es nuestra etiqueta, y el nombre del archivo de formulario es Form1.vb, pero por supuesto, puede cambiar esto.

Lo que todavía tiene que hacer: Edite el texto scrollLabel (15) en ambos casos para que sea la velocidad que desea. El tiempo es en milisegundos, entre iteraciones.

Probablemente hay una mejor manera de hacer esto, pero esta es mi mejor oportunidad:

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

Observe cómo IsClosed ayuda a romper el bucle para asegurarse de que la aplicación no continúe una vez que se cierre.

Además, si el usuario ha cambiado el tamaño del formulario mientras se está desplazando puede hacer que la etiqueta salte cuando llegue al lado izquierdo, pero eso se corregirá una vez que haya completado un ciclo completo.

Otros consejos

Es más fácil con un temporizador:

Lable.Text = Lable1.Text.Substring(1) & Lable1.Text.Substring(0, 1)

Coloque este temporizador de código e inicie el temporizador en la carga de formularios, así podrá utilizarlo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top