web-dev-qa-db-ja.com

RichTextBoxを一番下までスクロールするにはどうすればよいですか?

テキストを追加していないときでも、RichTextBoxを下にスクロールできる必要があります。テキストを追加し、それを使用して選択開始を設定できることを知っています。ただし、視覚的な理由から一番下にあることを確認したいので、テキストを追加していません。

72

SelectionStartプロパティをテキストの長さに設定してから、ScrollToCaretメソッドを呼び出すことができます。

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

RichTextBoxにフォーカスがある場合、AppendTextを使用して情報を追加すると、最後までスクロールされたままになります。 HideSelectionをfalseに設定すると、フォーカスを失ったときに選択を保持し、自動スクロールのままになります。

以下の方法を使用するログビューアGUIを設計しました。それは完全なコアまで追いついていました。このコードを削除してHideSelectionをfalseに設定すると、CPU使用率が1〜2%になりました。

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

WPFでは、ScrollToEndを使用できます。

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

コードは、リッチテキストボックスのTextChangedイベントに次のように記述する必要があります。

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