TextBox.AppendText()不自动滚动
我尝试了以下操作以使我的文本框文本自动滚动:
我正在使用的步骤非常简单:
- 将文本框拖到窗体上。
- 将文本框更改为多行。
- 添加垂直滚动。
- 使用AppendText()将文本添加到文本框中。
尽管尝试了这里提到的解决方案,但文本不会自动滚动:
如何自动滚动到多行文本框的底部?
可能导致这种情况的原因以及如何解决?
更新:如果我创建一个按钮并使用它来调用AppendText()我得到了所需的行为。 但是,如果我尝试从窗体的构造函数或Load()事件调用AppendText,那么我得到附加的文本,但TextBox不滚动。 这不是一个重复的问题,因为我过去没有看到有人发布此问题。
由于表单在构造函数和加载事件期间还没有完全准备好,因此我必须使用一个任务来使其在准备就绪后滚动:
以下是调用的方法:
void scroll() { this.Invoke(new MethodInvoker(delegate() { textBox1.SelectionStart = textBox1.Text.Length; textBox1.ScrollToCaret(); })); }
它通过置于load事件中的任务调用:
Task task1 = new Task(new Action(scroll)); task1.Start();