2009-02-23 3 views
9

Ich bin neu in Windows Forms. Ich verwende VS 2008, C#, um eine RichTextBox zu schreiben. Ich möchte in der Lage sein, jede Zeile mit einer anderen Farbe zu färben, während ich in die RichTextBox schreibe. Kann mich jemand auf Proben hinweisen? DankRichTextBox Farbe ausgewählte Zeilen

foreach (string file in myfiles) 
{ 
    // As I process my files 
    // richTextBox1.Text += "My processing results"; 
    if(file == "somefileName") 
    { 
    // Color above entered line or enter new colored line 
    } 

} 

Antwort

13

Set SelectionColor bevor Sie anhängen, so etwas wie:

int line = 0; 
    foreach (string file in myfiles) 
    { 
     // Whatever method you want to choose a color, here 
     // I'm just alternating between red and blue 
     richTextBox1.SelectionColor = 
      line % 2 == 0 ? Color.Red : Color.Blue; 

     // AppendText is better than rtb.Text += ... 
     richTextBox1.AppendText(file + "\r\n"); 
     line++; 
    } 
+0

+1. VB.Net-Benutzer sollten nicht vergessen, dass \ r \ n in C# entweicht. Schreiben Sie .AppendText (file & vbCrLf) in VB – smirkingman

+0

Wie im Code-Kommentar erwähnt, scheint die Verwendung von + = die gesamte Textfarbe, die bereits in der Box gesetzt wurde, zurückzusetzen, also ist die AppendText-Methode der eigentliche Trick. – kad81