2009-05-21 10 views
68

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

答えて

100

あなたは、テキストの長さにselectionStartプロパティを設定してみてください、その後ScrollToCaretメソッドを呼び出すことができます。

あなたがScrollToEnd使用することができますWPFで
richTextBox.SelectionStart = richTextBox.Text.Length; 
richTextBox.ScrollToCaret(); 
+2

ない非常に信頼性の高い、私は怖いです。キャレットの一番上のピクセルが見えるようにスクロールされることがあります。 – gatopeich

+1

私はVisual Studio 2013とWPFを使用しますが、RichTextBox、Any IdeaのScrollToCaret()メソッドは存在しませんか? – Cyberguille

+0

@ gatopeich - テキストの末尾に改行を入れて、プログラムでテキストを追加するときにすべて –

14

richTextBox.SelectionStart = richTextBox.Text.Length; 

これはトリックん:RichTextBox

richTextBox.ScrollToCaret(); 
+0

が動作しないようにする必要があります –

+0

質問はwinformsについてですが、最後までスクロールしません – riki

-1

をそれがあれば最後までスクロールしますフォーカスとあなたはAppendTextを使用して情報を追加します。 HideSelectionをfalseに設定すると、フォーカスを失い、自動スクロールしたままになると、その選択が維持されます。

以下の方法を使用するLog Viewer GUIを設計しました。それは完全なコアを維持するのに使いました。このコードを削除してHideSelectionをfalseに設定すると、CPU使用率は1〜2%に低下します。コードは次のようにリッチテキストボックスのTextChangedイベントに記述する必要があります

//Don't use this! 
richTextBox.AppendText(text); 
richTextBox.ScrollToEnd(); 
+12

しかし、キャレットはありません下段、どのように下にスクロールしますか? – LarsTech

16

を滞在するための必要はありません

richTextBox.AppendText(text); 
richTextBox.ScrollToEnd(); 
+0

これは信頼できますか? –

0

private void richTextBox_TextChanged(object sender, EventArgs e) { 
     richTextBox.SelectionStart = richTextBox.Text.Length; 
     richTextBox.ScrollToCaret(); 
} 
関連する問題