Hallo,
ich möchte in einer RichTextBox Text formatiert (farbig, bold, etc) einfügen. Mein bisheriger Code:
Code: Alles auswählen
void AddText(string text, Color color)
{
int pos = myRichTextBox.Text.Length;
myRichTextBox.Text += text;
myRichTextBox.Select(pos, text.Length);
myRichTextBox.SelectionColor = color;
}
Es funktioniert auch, allerdings überschreibt der zweite Aufruf die Farbe des gesamten vorherigen Textes. Beispiel:
Code: Alles auswählen
AddText("bla\n", Color.Blue);
AddText("blub\n", Color.Red);
Dies führt dazu dass auch die erste Zeile mit "bla" rot wird. Baue ich ein Sleep zwischen den Aufrufen ein, so ist die erste Zeile zunächst blau und nach dem zweiten Aufruf dann rot. Wobei dies eigentlich nicht ganz korrekt ist: Der letzte Aufruf überschreibt nichts mehr und sieht auch korrekt aus. Aber alles vorher überschreibt den gesamten Text. Ich habe irgendwie die Befürchtung dass da irgendwie eine Standardfarbe überschrieben wird oder so, aber in allen möglichen Anleitungen soll das angeblich so gehen.
Noch kurioser ist, dass ein Aufruf von Select mit pos + 1 als Anfang dazu führt dass keinerlei Formatierung stattfindet, außer beim letzten Aufruf, der wieder normal ist.
Kann mir jemand helfen?
Ohne Input kein Output.