2010-08-25 2 views
1

Я не уверен, что происходит с RichTextBox в приложении Windows Visual Studio C#. Это не веб-приложение.Прокрутка RichTextBox

У меня есть процедура, обрабатывающая несколько файлов. По мере того как он обрабатывает, он публикует отчеты о ходе работы в RichTextBox с помощью AppendText. (У дополнений есть символы новой строки, которые сохраняют чистоту.) Эта процедура была перенесена из одного приложения в другое. Форма в новом приложении была создана с нуля с помощью нового RichTextBox, и код был скопирован.

В исходном приложении, когда сообщения доходят до нижней части окна, они начинают прокручиваться, поэтому новая строка текста всегда видна. В новом приложении оно не прокручивается (хотя я хочу его), поэтому новые сообщения (включая последний, который указывает, что процесс завершен) скрыты снизу внизу. Я сравнил две программы, и я не вижу разницы. Я не понимаю, как это поведение будет контролироваться. Возможно, существует разница в процедуре, которая влияет на фокус, или на поведение обновления, или что-то еще.

Где я должен смотреть?

ответ

0

Вы могли бы просто prepend Ваши сообщения, чтобы новое сообщение всегда было на самом верху?

rchLog.Text = newMessage + "\n" + rchLog.Text; 
3
richTextBox1.Select(richTextBox1.TextLength, 0); // put caret at end 
richTextBox1.ScrollToCaret(); 

если вы хотите сохранить выбор вам нужно хранить SelectionStart и SelectionLength и восстановить выбор после того, как свиток.

+0

Спасибо. Кажется, это работает. Я все еще не знаю, почему мои две программы отличаются по производительности. – SeaDrive

+0

@SeaDrive: Вы ничего не сказали о производительности в своем вопросе. Что это? –

+0

re: возможности. Я не знаю, почему одна версия программы прокручивается, а другая - нет. Не имеет ничего общего с производительностью в смысле скорости выполнения. – SeaDrive

Смежные вопросы