Nur bestimmte Wörter einer Richtextbox Farbig schreiben?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Memo.

    Nur bestimmte Wörter einer Richtextbox Farbig schreiben?

    Hallo,

    Wie kann man nur bestimmte Wörter einer Richtextbox Farbig schreiben.
    Beispiel:

    Ich habe eine Richtextbox in der kein Text steht und die schriftfarbe schwarz ist.
    Wenn der User z.b. das in die richtextbox schreibt:
    www.vb-paradise.de ist ein gutes Forum
    Das nur www.vb-paradise.de in blau geschrieben wird und der restliche text ist schwarz
    Ist das möglich?
    Wenn ja wie?
    guck dir dazu mal die Eigenschaften SelectionStart,SelectionLength, SelectionColor usw. an ;)

    wenn du etwas ähnliches, wie SyntaxHighlighting realisieren willst, dann wäre es am besten den RTF Code direkt mit RegEx zu überprüfen und ersetzen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    VB.NET-Quellcode

    1. Private Sub Mark(ByVal rtb As RichTextBox, ByVal word As String, ByVal color As Color)
    2. Dim matchc As MatchCollection = Regex.Matches(rtb.Text.ToLower(), word.ToLower())
    3. For Each m As Match In matchc
    4. rtb.Select(m.Index, m.Length)
    5. rtb.SelectionColor = color
    6. Next


    MfG
    Ich hab die Funktion mark getestet und hab etwas daran auszusetzten:
    wenn man das Wort geschrieben hat kann man nicht mehr weiter schreiebn ohne das Wort zu löschen :(

    Verbessert:

    VB.NET-Quellcode

    1. Private Sub Mark(ByVal rtb As RichTextBox, ByVal word As String, ByVal color As Color)
    2. Dim matchc As MatchCollection = Regex.Matches(rtb.Text.ToLower(), word.ToLower())
    3. For Each m As Match In matchc
    4. rtb.Select(m.Index, m.Length)
    5. rtb.SelectionColor = color
    6. rtb.Select(rtb.Text.Length, 0)
    7. rtb.SelectionColor = Drawing.Color.Black
    8. Next