Запретить прокрутку текстового поля при добавлении текста - PullRequest
4 голосов
/ 26 февраля 2009

Я добавляю новую строку журналов в объект WinForms TextBox, и это приводит к прокрутке текстового поля вниз. Как я могу предотвратить это и сохранить свое нынешнее положение? (поможет короткий код)

Ответы [ 4 ]

3 голосов
/ 28 февраля 2010

На самом деле, AppendText () не будет делать то, что вы хотите (попробуйте добавить больше текста, и в какой-то момент все пойдет не так)

Ответ на самом деле лежит в Win32 API, и, к счастью для нас, такой же пользователь SO уже прекрасно реализовал это поведение: Текстовое поле с автоматической прокруткой использует больше памяти, чем ожидалось

1 голос
/ 06 июня 2013

Правильный и простой ответ на заданный вопрос - свойство SelectedText (чтение / запись). Вы можете назначить ему некоторый текст, и этот текст будет отображаться в позиции каретки без необходимости прокручивать текстовое поле. Вы можете использовать SelectionStart перед этим, чтобы переместить каретку в нужное место.

1 голос
/ 20 декабря 2012

В C # вы можете попробовать <yourTextBox>.Text += "your new text"; вместо <yourTextBox>.AppendText("your new text");.

0 голосов
/ 26 февраля 2009

SelectionStart не сделал то, что я хочу, по некоторым причинам. Он получил сброс на 0. Я нашел этот пост , который отвечает тому, что я хотел (который должен был использовать текстовое поле в качестве журнала). Ответ TextBox.AppendText ()

...