Suche einen Texteil aus einer RichTextBox und formatiere diesen in eine Farbe!

  • VB.NET

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

    Suche einen Texteil aus einer RichTextBox und formatiere diesen in eine Farbe!

    Hallo Leute!

    Und zwar folgendes ich suche nach einer Möglichkeit einen Texteil aus einer RTB zu formatieren zum Beispiel:

    "Wenn ich diesen Texteil Eingebe und danach den Button makieren drücke, sollte er mir folgende Bereich Rot einfärben: Wenn; , ;Button; ;einfärben;"

    Könnt ihr mir vl. einen Lösungsvorschlag posten! Wobei der Text immer Variabel ist! Er soll einfach nur bestimmte Texteile kopieren!

    Bitte eine einfache erklärung da ich in VB noch etwas ungeübt bin!


    lg Backupboy ^^ ^^

    VB.NET-Quellcode

    1. For Each match As Match In New Regex("Das Wort was eingefärbt werden soll", RegexOptions.IgnoreCase).Matches("TEXT WO DIE WÖRTER VORKOMMEN", "TEXT WO DIE WÖRTER VORKOMMEN".Lenght)
    2. With rtbCode
    3. .SelectionStart = match.Index
    4. .SelectionLength = match.Length
    5. .SelectionColor = Color.Red
    6. .SelectionLength = 0
    7. .SelectionColor = Color.Black
    8. End With
    9. Next
    Funktioniert so nicht!

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender as System.Object, ByVal e as system.EventArgs) Handles Button1.Click
    2. For Each match As Match In New Regex("5", RegexOptions.IgnoreCase).Matches(RichTextBox1, RichTextBox1.Lenght)
    3. With rtbCode
    4. .SelectionStart = match.Index
    5. .SelectionLength = match.Length
    6. .SelectionColor = Color.Red
    7. .SelectionLength = 0
    8. .SelectionColor = Color.Black
    9. End With
    10. Next
    11. End Sub
    12. ' Match wird als non-Declared makiert
    13. ' Regex ebenso!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „backupboy“ ()

    SUFU RichTextBox formatieren, da findest Du genügend Beispiele.
    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!
    Der Code von Leseratte ist fast richtig:

    VB.NET-Quellcode

    1. Imports System.Text.RegularExpressions
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. RichTextBox1.Text = "der Hund, der Affe, der Papagei"
    5. ' Regex konfigurieren
    6. Dim regex As New Regex("DER", RegexOptions.IgnoreCase)
    7. ' alle Artikel DER suchen (Gross/Kleinschreibung egal)
    8. Dim mc As MatchCollection = regex.Matches(RichTextBox1.Text)
    9. ' alle gefundenen Wörter einfärben
    10. For Each m As Match In mc
    11. RichTextBox1.SelectionStart = m.Index
    12. RichTextBox1.SelectionLength = m.Length
    13. RichTextBox1.SelectionColor = Color.Red
    14. Next
    15. End Sub
    16. End Class