Rich Textbox zur Darstellung eines Log's - Zeilen von oben löschen

06/10/2008 - 14:34 von Thomas Hübner | Report spam
Hi NG,

Eine RT Box wird mit appendText zeilenweise gefüllt. Jetzt ist z.B
Zeile 1000 erreicht und bei jeder neu eingefügten Zeile soll die erste
Zeile gelöscht werden. Das ganze soll "versteckt" ohne flackern
passieren und der Curser (sollte immer am Ende des Logfiles stehen
bleiben. Eine Lösung wie beim erreichen von 1000 die ersten 50 zu
löschen wàre aus performancegründen auch ok.

Mein Ansatz wàre, die RTextbox in ein Array oder ListOf String
einzulesen, löschen und wieder zurückschreiben. Dadurch geht aber die
farbliche Formatierung verloren.

Ein Gegenstück zu AppendText (RemoveText) habe ich leider nicht
gefunden. Wenn ich die erste Zeile selektiere "schneppst" der Text
nach oben bzw. flackert die Box.

Hat da jemand eine Lösung für?

Gruß,
Thomas
 

Lesen sie die antworten

#1 rr
08/10/2008 - 10:38 | Warnen spam
int maxLines, deleteLines;
if (richTextBox.Lines.Length > maxLines)
{
richTextBox.SelectionStart = 0;
int length = 0;
for (int i = 0; i < deleteLines; i++)
length += richTextBox.Lines[i].Length;
richTextBox.SelectionLength = length;
richTextBox.SelectedText = String.Empty;
}

Ähnliche fragen