Мне нужно прокрутить RichTextBox до конца, даже если я не добавляю текст. Я знаю, что могу добавить текст, а затем использовать его для установки начала выбора. Однако я хочу убедиться, что он внизу по визуальным соображениям, поэтому я не добавляю текст.
Как прокрутить RichTextBox до конца?
Ответ 1
Вы можете попробовать установить свойство SelectionStart на длину текста, а затем вызвать метод ScrollToCaret.
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
Ответ 2
RichTextBox
будет прокручиваться до конца, если у него есть фокус, и вы используете AppendText
для добавления информации. Если вы установите для параметра HideSelection
значение false, он будет сохранять свой выбор, когда он потеряет фокус и останется автопрокрученным.
Я разработал GUI Log Viewer, который использовал метод ниже. Он использовал до полного ядро. Избавление от этого кода и установка HideSelection
на false привели к тому, что загрузка процессора снизилась до 1-2%.
//Don't use this!
richTextBox.AppendText(text);
richTextBox.ScrollToEnd();
Ответ 3
В WPF вы можете использовать ScrollToEnd:
richTextBox.AppendText(text);
richTextBox.ScrollToEnd();
Ответ 4
Код должен быть написан в текстовом поле с расширенным текстом. Событие TextChanged:
private void richTextBox_TextChanged(object sender, EventArgs e) {
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
}
Ответ 5
Нет необходимости:
richTextBox.SelectionStart = richTextBox.Text.Length;
Это трюк:
richTextBox.ScrollToCaret();