هل هناك أي الأساسية 2008 كود النص التمرير البصرية؟

StackOverflow https://stackoverflow.com/questions/1408639

  •  05-07-2019
  •  | 
  •  

سؤال

واريد التعليمات البرمجية التي عند تطبيقها على النص في مخطوطات بسيطة 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