Прокрутите до нижней части текстового поля C# [дубликат]



этот вопрос уже есть ответ здесь:



У меня есть текстовое поле в приложении C# Forms. Я заполняю текстовое поле информацией о событии загрузки формы. Затем я называю следующее:



this.txtLogEntries.SelectionStart = txtLogEntries.Text.Length;
this.txtLogEntries.ScrollToCaret();


в Текстовое поле не прокручивается вниз ?

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



Итак, как я могу заставить его прокрутить вниз при предварительном заполнении текстового поля в событии загрузки формы?

613   2  

2 ответов:

Попробуйте поместить код в показанное событие формы:

private void myForm_Shown(object sender, EventArgs e)
{
  txtLogEntries.SelectionStart = txtLogEntries.Text.Length;
  txtLogEntries.ScrollToCaret();
}

С Load событие (происходит до форма показана) обрабатывается, пока нет формы для отображения, и, следовательно, визуальное состояние не установлено. Прокрутка невидимого элемента управления поэтому, скорее всего, ничего не делает, потому что-эй, нет ничего для прокрутки, поскольку прокрутка видового экрана-это просто представление элемента управления, но не часть его состояния.

вы можете иметь больше успеха с перемещением прокрутки части в Shown событие (происходит после форма сначала показана) формы

Comments

    Ничего не найдено.