滚动到C#TextBox的底部

SnA*_*BaZ 60 c# textbox winforms

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

this.txtLogEntries.SelectionStart = txtLogEntries.Text.Length;
this.txtLogEntries.ScrollToCaret();
Run Code Online (Sandbox Code Playgroud)

但是TextBox不会滚动到底部?

这仅适用于Load事件.我还会在应用程序运行时从应用程序的其他部分更新此TextBox,并且只要其中一个事件更新为TextBox,它就会滚动到底部.

那么,如何在Form Load事件中预先填充TextBox时将其滚动到底部?

ber*_*hof 92

尝试将代码放在Form的Shown事件中:

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


Joe*_*oey 16

当处理Load事件(显示表单之前发生)时,还没有要显示的表单,因此没有建立视觉状态.因此滚动不可见的控件很可能不会做任何事情因为 - 嘿,没有什么可以滚动,因为滚动视口只是控件上的视图而不是其状态的一部分.

将滚动部分移动到窗体中的Shown事件(窗体首次显示之后)可能会有更多成功