Как предотвратить прокрутку многострочного текстового поля при добавлении текста?

У меня есть многострочный TextBox с именем Console. Во время работы это текстовое поле заполняется некоторыми данными связи. я использую

TextBox.AppendText("txt\r\n");

чтобы добавить к нему строку, и это позволяет мне автоматически прокручивать его вниз. Моя проблема в том, что я хочу, чтобы не было автоматической прокрутки вниз. Поэтому я подумал, что попробую

TextBox.Text += "text";

Но это прокручивает вас к началу окна. Моя последняя попытка состояла в том, чтобы использовать TextBox.SelectionStart, чтобы сохранить позицию до того, как я написал, и восстановить ее обратно после, но это, похоже, не имеет значения и все еще возвращает меня к началу текста.

int txtPosition = Console.SelectionStart;
Console.Text += "TextToAdd";
Console.SelectionStart = txtPosition;

В идеале я хочу, чтобы поле оставалось там, где оно есть, и не прокручивалось до начала или конца текста.


person Andy    schedule 23.06.2010    source источник


Ответы (2)


Я думаю, вам нужно richtextbox вместо общего текстового поля, и это предоставит вам желаемую функциональность.

Наслаждаться!

person Doug    schedule 23.06.2010
comment
Спасибо, это сработало отлично. Есть некоторые другие проблемы сейчас, но медленно работаю над ними. - person Andy; 23.06.2010

Для текстового поля WinForms вы можете сделать это:

textBox.SelectionStart = 0; 
textBox.ScrollToCaret(); // force current position back to top
person LBushkin    schedule 23.06.2010