2016-06-29 10 views
0

Ich habe eine Richtextbox verwendet, um Protokolle in meinen WinForms anzuzeigen.Richtextbox vor neuen Text mit Farbe

Die verwendete Sprache ist C#.

Die Software wird verwendet, um Daten von Bankfilialen einzufügen und nach dem Start von neuen Branch möchte ich einen Text mit neuer Farbe anzeigen.

Ich habe den Link Color different parts of a RichTextBox string gesehen und erfolgreich implementiert.

Mein Problem ist, ich möchte die neue Zeile vorhängen statt anhängen. Das heißt, die neue Zeile wird oben angezeigt.

Ich bin in der Lage, dies zu tun, indem Sie den Code zu box.Text=DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + ": " + text + box.Text

Ändern Aber die Farbe für den gesamten Text ändert.

Dies ist das Verfahren zum Anfügen verwendet

  box.SelectionStart = box.TextLength; 
     box.SelectionLength = 0; 

     box.SelectionColor = color; 

     box.AppendText(DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + ": " + text); 
     box.SelectionColor = box.ForeColor; 

Dies ist, was ich getan habe:

  box.Text=DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss") + ": " + text + box.text; 
     box.SelectionStart = 0; 
     box.SelectionLength = text.length; 
     box.SelectionColor = color; 

Aber das funktioniert nicht.

Antwort

2

1) Nie direkt die Text Eigenschaft Änderung eines bereits formatiert RichtTextBox

2) Um append verwenden, um die RTB.AppendText Funktion

3) Um Einsatz jeder anderen Position p , einschließlich des Anfangsgebrauches dieses:

rtb.SelectionStart = s;   // set the cursor to the target position 
rtb.Selection.Length = 0;   // nothing selected, yet 
rtb.SelectedText = yourNewText; // this inserts the new text 

Jetzt können Sie die Formatierung hinzufügen Sie wollen:

rtb.SelectionStart = s;   // now we prepare the new formatting.. 
rtb.SelectionLength = yourNewText.Length; //.. by selecting the text 
rtb.SelectionColor = Color.Blue; // and/or whatever you want to do.. 
... 
+0

Ja. Das ist die Lösung, nach der ich gesucht habe. –