Richtextbox alle Zahlen färben

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Kasi.

    Richtextbox alle Zahlen färben

    Hallo,

    ich würde gerne Zahlen die in einer Richtextbox stehen färben sprich in der RTB steht:

    Hallo=123
    Derdiedas=456

    Dann will ich die 123 und die 456 farbig haben usw.

    Mit einzelnen Wörtern bekomm ich es mittlerweile hin aber leider nicht mit Zahlen..
    Entweder bin ich zu doof oder habe grad nur einen Hänger..

    Vielleicht kann mir ja jemand einen Anstoß geben.

    Danke schonmal im voraus.
    Wenn du es mit Wörtern hinkriegst, wäre doch ein einfacher nächster Schritt, einfach die Ziffern 0-9 jeweils als Wort zu betrachten und dann wie Wörter bisher einzufärben. Das ist jetzt natürlich nicht die effizienteste Variante, aber trotzdem eigentlich absolut brauchbar und ein schöner Transfer von Wissen, das zu schon hast.
    @TheDark Wie kommt denn der Text in die RTB?
    Wenn Du weißt, dass jetzt eine Zahl geschrieben wird, kannst Du .SelectionStart auf .TextLength setzen, die Zahl schreiben, die Text-Länge der Zahl als .SelectionLength setzen und .SelectionColor Deinen Wert zuweisen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    nafets hat schon die richtige Idee

    hier mit Regex

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    3. RichTextBox1.LoadFile("E:\Testsearch.txt", RichTextBoxStreamType.PlainText)
    4. End Sub
    5. Private Sub Mark(ByVal rtb As RichTextBox, _
    6. ByVal word As String, _
    7. ByVal color As Color)
    8. Dim matchc As MatchCollection = Regex.Matches(rtb.Text.ToLower(), word.ToLower())
    9. For Each m As Match In matchc
    10. rtb.Select(m.Index, m.Length)
    11. rtb.SelectionColor = color
    12. rtb.Select(rtb.Text.Length, 0)
    13. rtb.SelectionColor = Drawing.Color.Black
    14. Next
    15. End Sub
    16. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    17. Mark(RichTextBox1, "[0-9]", Color.Blue)
    18. End Sub
    19. End Class