Oliver Braun
2006-03-14 11:34:23 UTC
Hallo, jetzt brauche ich Hilfe durch Fachleute:
Ich habe die Windows-eigene RichTextBox auf einem Formular und fülle sie mit
Logging-Texten aus Komponenten. Die Texte werden einfach hintereinander
gehängt:
richTextBox.Text += "Neuer Text" + Environment.NewLine;
Soweit so gut. Dann wollte ich, dass die RichTextBox bei Bedarf scrollt,
dann nämlich, wenn eine CheckBox angehakt ist:
if (checkBoxAutoscroll.Checked)
{
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.SelectionLength=0;
richTextBox.Focus(); // to make next command (ScrollToCaret) work !
richTextBox.ScrollToCaret();
Application.DoEvents();
}
Jetzt meine Probleme:
- Wenn ich die Checkbox deaktiviere, springt die Textmarke in der
RichTextBox immer an den Anfang und bleibt nicht da stehen, wo ich sie
zuletzt hingesetzt habe.
- Wenn der Text eine bestimmte Größe erreicht hat, kommt es zu ganz
seltsamen Effekten beim Scrollen. Eigentlich dachte ich, mit der RichTextBox
hätte ich keine Größenprobleme des Inhalts wie bei der Textbox, aber
vielleicht funktioniert dann die Text.Length-Abfrage nicht mehr richtig.
Kennt jemand einen besseren Ansatz, mein Feature zu realisieren? Oder hat
jemand konkrete Tipps für den gewählten Weg?
Vielen Dank !
Ich habe die Windows-eigene RichTextBox auf einem Formular und fülle sie mit
Logging-Texten aus Komponenten. Die Texte werden einfach hintereinander
gehängt:
richTextBox.Text += "Neuer Text" + Environment.NewLine;
Soweit so gut. Dann wollte ich, dass die RichTextBox bei Bedarf scrollt,
dann nämlich, wenn eine CheckBox angehakt ist:
if (checkBoxAutoscroll.Checked)
{
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.SelectionLength=0;
richTextBox.Focus(); // to make next command (ScrollToCaret) work !
richTextBox.ScrollToCaret();
Application.DoEvents();
}
Jetzt meine Probleme:
- Wenn ich die Checkbox deaktiviere, springt die Textmarke in der
RichTextBox immer an den Anfang und bleibt nicht da stehen, wo ich sie
zuletzt hingesetzt habe.
- Wenn der Text eine bestimmte Größe erreicht hat, kommt es zu ganz
seltsamen Effekten beim Scrollen. Eigentlich dachte ich, mit der RichTextBox
hätte ich keine Größenprobleme des Inhalts wie bei der Textbox, aber
vielleicht funktioniert dann die Text.Length-Abfrage nicht mehr richtig.
Kennt jemand einen besseren Ansatz, mein Feature zu realisieren? Oder hat
jemand konkrete Tipps für den gewählten Weg?
Vielen Dank !