滚动到C#文本框的底部

我有一个C#窗体应用程序上的文本框。 我使用窗体的Load事件信息填充TextBox。 然后我打电话给以下人员:

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

但是TextBox不滚动到底部?

这只适用于Load事件。 我也从运行的应用程序的其他部分更新这个TextBox,一旦这些事件之一更新的文本框,它滚动到底部。

那么,如何预先填充表单加载事件中的文本框,让它滚动到底部?

尝试把代码放在Form's Shown事件中:

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

Load事件( 显示Form 之前发生)被处理的时候,没有forms显示,因此没有build立视觉状态。 滚动一个不可见的控件因此很可能不会做任何事情,因为 – 嘿,没有什么可滚动的,因为滚动视口只是控件上的视图,而不是其状态的一部分。

将滚动部分移到表单事件(发生表单第一次显示之后)您可能会获得更多的成功