我尝试了以下操作让我的文本框文本自动滚动:
我正在使用的步骤非常简单:
尽管尝试了这里提到的解决方案,但文本不会自动滚动:
How do I automatically scroll to the bottom of a multiline text box?
可能导致此问题的原因以及如何解决?
更新:如果我创建一个按钮并使用它来调用AppendText(),我会得到所需的行为。但是,如果我尝试从窗体的构造函数或Load()事件调用AppendText,那么我得到附加的文本,但TextBox不滚动。这不是一个重复的问题,因为我在过去没有看到有人发布此问题。
答案 0 :(得分:5)
由于表单在构造函数和load事件期间还没有完全准备好,所以我必须使用一个任务让它在准备就绪后滚动:
以下是调用的方法:
void scroll()
{
this.Invoke(new MethodInvoker(delegate()
{
textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
}));
}
通过置于load事件中的此任务调用它:
Task task1 = new Task(new Action(scroll));
task1.Start();
答案 1 :(得分:0)
如果TextBox.ScrollToEnd()
不起作用,您也可以尝试ScrollToCaret()
功能。
txtBox1.AppendText("somthing");
txtBox1.ScrollToEnd();