Hallo,
ich habe auf meiner Oberfläche eine System.Windows.Forms.TextBox platziert.
Diese habe ich als Multiline mit Scrollbalken projektiert, und nutze diese zur Ausgabe von Debug-Informationen mittels AppendText(...).
Nun nimmt das Programm bei vielen Ausgaben immer mehr Speicher in Anspruch.
Kann ich bei der Textbox irgendwie den maximalen Speicherplatz / maximale Anzahl Zeichen oder Zeilen einstellen?
Oder muss ich das selber programmieren, dass z.B. ab 100 Zeilen die zu erst eingetragene Zeile gelöscht wird?
Danke und Gruß
Thomas
Hallo
Oder muss ich das selber programmieren, dass z.B. ab 100 Zeilen die zu erst eingetragene Zeile gelöscht wird?
Ich denke schon - sowas ähnliches wurde hier im Forum schon öfters besprochen im Zusammenhang wie man eine Art Konsolenausgabe auf einem Form einbetten kann. Etwas fertiges scheint es dafür nicht zu geben.
Ich kann mir auch vorstellen, daß Du bei Codeproject fündig wirst.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
nja aber lässt sich doch halbwegs schnell etwa so realisieren oder?
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Lines.Length > 5)
{
int selectionstart = textBox1.SelectionStart;
int firstlinelength = textBox1.Lines[0].Length;
// Textlänge der ersten Zeile entfernen + die beiden steuerzeichen '\r' und '\n'
textBox1.Text = textBox1.Text.Remove(0, firstlinelength + 2);
//Caret wieder an seine alte Position setzen
textBox1.SelectionStart = selectionstart - firstlinelength;
}
}
Achtung das is kein fertiger Code!!
Danke, ich dachte da gäb es eine Stelle wo man das einstellen kann.
Ich habe das jetzt so wie im Beispiel Campac gelöst. Am Ende habe ich noch ein
textBox1.ScrollToCaret();
gesetzt, dann wird auch an den letzten Eintrag gescrollt.
Hallo Thomas123,
ich dachte da gäb es eine Stelle wo man das einstellen kann.
vorgegeben gibt es nur TextBox.MaxLength (also Begrenzung der Anzahl der Zeichen, nicht der Zeilen) und selbst das führt nicht dazu, dass automatisch was gelöscht wird.
herbivore
Und MaxLength gilt m.E. auch nur für vom Anwender eingetippten Text, nicht für vom Programm zugewiesenen (zumindestens für eine Single-Line-TextBox gilt dies, aber ich denke auch für eine Multi-Line-TextBox).