2009-07-25 12 views
0

Im Versuch, das Folgende zu machen:RegExp C# und richtextbox

1) Regex alle Strings übereinstimmen, die das folgende Muster "@username" haben < < getan i das Muster bekam @([A-z09_-]){4,20}

2) den Text aus dem Rich-Text-Feld zu analysieren und diese Muster "@somethign" in einer Farbe zu färben

3) sie anklickbar machen & wenn geklickt wird, um die angeklickte Zeichenfolge in Textfeld einzufügen (nur wenn das ohne Tonnen von Code möglich ist & Bibliotheken)

gut. das ist im Grunde es .. jede Hilfe wird geschätzt :) ' Prost :)

Antwort

2

Verwenden Sie regexp, um alle Vorkommen von "@username" zu finden, und speichern Sie sie in einer Sammlung. iterieren dann durch diese Sammlung und dies tun:

int startpos = 0; 
if ((startpos = richTextBox1.Find(name)) > 0) 
{ 
    richTextBox1.SelectionStart = startpos; 
    richTextBox1.SelectionLength = name.Length; 
    richTextBox1.SetSelectionLink(true); 
} 

Beachten Sie, dass dies eine erweiterte richtextbox hier verwendet: Link. (Der SetSelectionLink befindet sich nicht in der Klasse vanilla richtextbox.)