滚动到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立视觉状态。 滚动一个不可见的控件因此很可能不会做任何事情,因为 – 嘿,没有什么可滚动的,因为滚动视口只是控件上的视图,而不是其状态的一部分。
将滚动部分移到表单事件(发生在表单第一次显示之后)您可能会获得更多的成功