LAUFTEXT

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von MartinB..

    Kannst du näher beschreiben was du mit Lauftext meinst? So wie es scheint, weiß hier keiner was du meinst!?!

    Ich gehe davon aus das es ein einfacher Text sein soll der durch die Textbox "läuft" (wie bei werbebannern oder so).
    Wüsste jetzt aber nicht wie man das macht, bin selber noch zu frisch :D

    Guck mal !!hier!!

    Ist von VB6 und älter aber vielleicht bringt es dir ja was!

    Würde auch gern wissen ob und wie so etwas funktioniert!

    MfG
    MartinB.
    So wie es scheint, weiß hier keiner was du meinst!?!
    Manche Leute haben nebenbei nochwas anderes zu tun ;)

    Einstellen kann man das bei einer Textbox nicht. Es gibt so eine Funktion standardmäßig nicht.

    Eine Laufschrift wird normal ganz einfach verwirklicht: Je nach Richtung, wird das erste oder letzte Zeichen des Inhalts der Textbox abgeschnitten und am andere Ende wieder hinzugefügt.

    Wenn du dies in einem Timer regelmäßig (z.B. jede Sekunde) machen lässt, hast du den Laufschrift-Effekt.
    Da der Text aber ggfs nicht die ganze Länge der Textbox ausfüllt, muss man mit Leerzeichen auffüllen. bloß wie viele? -> TextRenderer!

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents t As New System.Windows.Forms.Timer With {.Enabled = False, .Interval = 25}
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim s As String = "Hallo Welt"
    5. While TextRenderer.MeasureText(s, TextBox1.Font).Width < TextBox1.Width
    6. s &= " "
    7. End While
    8. s = s.Substring(0, s.Length - 1)
    9. TextBox1.Text = s
    10. TextBox1.ReadOnly = True
    11. t.Enabled = True
    12. End Sub
    13. Private Sub t_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles t.Tick
    14. Dim s As String = TextBox1.Text
    15. Dim c As Char = s(s.Length - 1)
    16. TextBox1.Text = c.ToString & s.Substring(0, s.Length - 1)
    17. End Sub
    18. End Class


    Nachtrach:
    Gekapselt ist schöner!
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Lauftext
    2. Private WithEvents tm As New Timers.Timer With {.AutoReset = True, .Enabled = False, .Interval = 100}
    3. Private tb As TextBox
    4. Public Sub New(ByVal t As TextBox, ByVal s As String, Optional ByVal intrval As Integer = 100)
    5. If intrval < 10 Or intrval > 10000 Then intrval = 100
    6. tm.Interval = intrval
    7. While TextRenderer.MeasureText(s, t.Font).Width < t.Width
    8. s &= " "
    9. End While
    10. s = s.Substring(0, s.Length - 1)
    11. t.Text = s
    12. t.ReadOnly = True
    13. tb = t
    14. tm.Start()
    15. End Sub
    16. Private Delegate Sub dlgSetText(ByVal s As String)
    17. Private Sub SetText(ByVal s As String)
    18. tb.Text = s
    19. End Sub
    20. Private Sub tm_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles tm.Elapsed
    21. Try
    22. Dim d As dlgSetText = AddressOf SetText
    23. Dim s As String = tb.Text
    24. Dim c As Char = s(s.Length - 1)
    25. tb.Invoke(d, c.ToString & s.Substring(0, s.Length - 1))
    26. Catch
    27. tm.Stop()
    28. End Try
    29. End Sub
    30. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()