Pergunta

Eu quero um código que, quando aplicada ao texto no Visual Basic 2008 que rola em toda a tela. Eu não quero chamativo nada, apenas algo básico para começar com. Se vocês sabem de uma coisa que seria ótimo!

EDIT:

Eu gostaria que ele ciclo, espero que isso torna mais fácil!

Foi útil?

Solução

O que você precisa:. A única etiqueta, você pode nomeá-lo qualquer coisa, mas, neste caso, Label1 é nossa gravadora, e o nome do arquivo forma é Form1.vb, mas é claro que você pode alterar esse

O que você ainda tem que fazer: Edite o texto scrollLabel (15) em ambos os casos para torná-lo a velocidade desejada. O tempo é em milissegundos, entre iterações.

Há provavelmente uma maneira melhor de fazer isso, mas aqui é o meu melhor tiro:

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 como IsClosed ajuda a quebrar o ciclo de garantir a aplicação não continua uma vez que está fechada.

Além disso, se o usuário tenha redimensionado o formulário enquanto está rolando pode causar o rótulo para saltar quando ele atinge o lado esquerdo, mas que irá corrigir-se uma vez que tenha concluído um ciclo completo.

Outras dicas

É mais fácil com um temporizador:

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

Coloque este temporizador código e iniciar o temporizador de carregamento do formulário é assim que você pode usá-lo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top