TextBox.AppendText() не autoscrolling

Я попробовал следующее, чтобы автоматически распечатать текст в текстовом поле:

Шаги, которые я использую, довольно тривиальны:

  • Перетащите текстовое поле на форму.
  • Измените текстовое поле как многострочное.
  • Добавить вертикальную прокрутку.
  • Используйте AppendText() для добавления текста в текстовое поле.

Текст автоматически не прокручивается, несмотря на попытки решения, упомянутые здесь:

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

Что может быть причиной этого и как его исправить?

UPDATE: если я создаю кнопку и использую ее для вызова AppendText(), я получаю желаемое поведение. Однако, если я пытаюсь вызвать AppendText из конструктора формы или Load(), тогда я получаю добавленный текст, но TextBox не прокручивается. Это не дублирующий вопрос, поскольку я не видел, чтобы кто-нибудь публиковал эту проблему в прошлом.

Ответ 1

Поскольку форма не совсем готова во время события конструктора и загрузки, мне пришлось использовать задачу, чтобы заставить ее прокручиваться после ее готовности:

Вот метод, который вызывается:

void scroll()
{
    this.Invoke(new MethodInvoker(delegate()
        {
            textBox1.SelectionStart = textBox1.Text.Length;
            textBox1.ScrollToCaret();
        }));
}

Он запускается с помощью этой задачи, помещенной в событие загрузки:

Task task1 = new Task(new Action(scroll));
            task1.Start();