質問

Visual Basic 2008のテキストに適用されたときに画面をスクロールするコードが必要です。派手なものは必要ありません。基本的なものから始めてください。皆さんがこのような素晴らしいことを知っているなら!

編集:

循環させたいのですが、これがもっと簡単になることを願っています!

役に立ちましたか?

解決

必要なもの:単一のラベル、任意の名前を付けることができますが、この場合はLabel1がラベルであり、フォームファイル名はForm1.vbですが、もちろんこれを変更できます。

あなたがまだしなければならないこと:どちらの場合でも、テキストscrollLabel(15)を編集して、必要な速度にします。反復間の時間はミリ秒単位です。

これを行うにはおそらくもっと良い方法がありますが、ここに私のベストショットがあります:

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

IsClosedがループの切断にどのように役立つかを確認して、アプリケーションが閉じられた後に継続しないようにします。

また、スクロール中にユーザーがフォームのサイズを変更した場合、左側にヒットしたときにラベルがジャンプする可能性がありますが、完全なループが完了すると自動的に修正されます。

他のヒント

タイマーを使用するとより簡単になります:

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

このコードタイマーを配置し、フォームの読み込み時にタイマーを開始します。これが使用方法です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top