VB Richtextbox Frage

05/01/2011 19:24 mrapc#1
Hallo Com,

ich möchte das ein Wort in einer Richtextbox eine andere Farbe bekommt.
aber nur ein einzelnes wort.

Beispiel
Code:
 start
[COLOR="Blue"]Say[/COLOR] ("Hallo du")
[COLOR="#0000ff"]say[/COLOR] ("HoHo")
[COLOR="#0000ff"]wait ( )[/COLOR]
Der code sollte so aussehen
PHP Code:
If RichTextBox1.Text.Contains("Say"Then
            
// und hier weis ich nicht weiter...
        
End If 
Also er entdeckt das Wort Say aber das wars auch schon...

Danke schonmal im Vorraus ;)

APC
05/02/2011 13:29 Kraizy​#2
Such mal in Google nach .SelectionStart() & .SelectionColor().
05/02/2011 14:51 mrapc#3
danke aber man kann das nicht verwenden :(

So kann man zwar
Richtextbox1.select ("Say")

aber es verschwindet beim nächstem klick...
05/02/2011 15:03 Kraizy​#4
PHP Code:
Public Sub Markiere(Wort as stringFarbe as color)
     
dim mc as MatchCollection Regex.Matches(rtb.text.tolowerwort.tolower)

     For 
each m as Match in mc
          rtb
.select(m.indexm.length)
          
rtb.selectioncolor farbe
          rtb
.select(rtb.text.length0)
          
rtb.selectioncolor color.black
     Next
End Sub 
05/02/2011 21:34 mrapc#5
Soll ich dann "m" in Say umändern?
05/02/2011 21:37 Kraizy​#6
Du sollst die Methode aufrufen, z.B. per Button: Markiere("say", Color.Blue)
05/03/2011 17:28 mrapc#7
OK Danke
Hier der COde wie ich den haben musste:
PHP Code:
Dim mc As System.Text.RegularExpressions.MatchCollection System.Text.RegularExpressions.Regex.Matches(RichTextBox1.Text.ToLowerWort.ToLower)

        For 
Each m As System.Text.RegularExpressions.Match In mc
            RichTextBox1
.Select(m.Indexm.Length)
            
RichTextBox1.SelectionColor Farbe
            RichTextBox1
.Select(RichTextBox1.Text.Length0)
            
RichTextBox1.SelectionColor Color.Black
        Next
    End Sub 
Zum Aufrufen
PHP Code:
If Richtextbox1.text.contains ("Say"Then
Markiere
("say"Color.Blue)
End If 
1000 mal Danke an xKraizy
05/03/2011 18:55 Kraizy​#8
Die If-Abfrage brauchst du gar nicht. Pack die Zeile: Markiere("say", Color.Blue) in das TextChanged-Ereignis der RichTextBox und beim Schreiben, wird automatisch das Wort markiert.
05/03/2011 19:15 mrapc#9
JA wenn es aber nicht exestiert kommt ein fehler ;)
05/03/2011 19:47 Kraizy​#10
Also bei mir nicht..
PHP Code:
Imports System.Text.RegularExpressions
Public Class Form1
    
Public Sub Markiere(ByVal Wort As StringByVal Farbe As Color)
        
Dim mc As MatchCollection Regex.Matches(RichTextBox1.Text.ToLowerWort.ToLower)

        For 
Each m As Match In mc
            RichTextBox1
.Select(m.Indexm.Length)
            
RichTextBox1.SelectionColor Farbe
            RichTextBox1
.Select(RichTextBox1.Text.Length0)
            
RichTextBox1.SelectionColor Color.Black
        Next
    End Sub

    
Private Sub RichTextBox1_TextChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RichTextBox1.TextChanged
        Markiere
("say"Color.Blue)
    
End Sub
End 
Class 
Wenn ich schreibe, wird der Text ganz normal in der RTB angezeigt, wenn ich dann inrgendwann "say" schreibe wird es blau markiert. Es kommt aber kein Fehler..
05/04/2011 14:45 mrapc#11
mh naja auch egal aber danke für deine Hilfe ;)