wake-up-neo.net

Wie scrolle ich eine RichTextBox nach unten?

Ich muss in der Lage sein, eine RichTextBox nach unten zu scrollen, auch wenn ich keinen Text anhange. Ich weiß, dass ich Text anhängen kann und dann den Start der Auswahl festlegen kann. Ich möchte jedoch sicherstellen, dass es aus visuellen Gründen unten ist, also füge ich keinen Text hinzu.

69

Sie können versuchen, die SelectionStart-Eigenschaft auf die Länge des Textes festzulegen, und dann die ScrollToCaret-Methode aufrufen.

richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
100
Brandon

Die Variable RichTextBox bleibt bis zum Ende gescrollt, wenn sie den Fokus hat, und Sie fügen AppendText die Informationen hinzu. Wenn Sie HideSelection auf false setzen, bleibt die Auswahl erhalten, wenn der Fokus verloren geht und der automatische Bildlauf beibehalten wird.

Ich habe eine Log Viewer-GUI entworfen, die die unten beschriebene Methode verwendet. Es hat bis zu einem vollen Kern verwendet, um Schritt zu halten. Wenn Sie diesen Code entfernen und HideSelection auf false setzen, sank die CPU-Auslastung auf 1-2%.

//Don't use this!
richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
16
DrWu

In WPF können Sie ScrollToEnd verwenden:

richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
14
mxgg250

Code sollte in das TextChanged-Ereignis des Rich-Text-Feldes geschrieben werden:

private void richTextBox_TextChanged(object sender, EventArgs e) {
       richTextBox.SelectionStart = richTextBox.Text.Length;
       richTextBox.ScrollToCaret();
}
0
agileDev