我的表单加载时可以冻结我的UI渲染吗?

Con*_*ell 11 c# winforms

有什么办法可以暂停Winforms中的所有UI Update命令吗?

或者我有一种轻微的感觉,我试图以完全错误的方式解决这个问题,所以我的问题是另一种解决方法:我基本上加载一个控件的保存状态,它会在其上加载新的控件.但是我在UI线程中执行了一些操作,并且从另一个线程加载了一些数据,然后填充了UI.

因此,加载时的效果是用户可以看到一些控件出现在一个位置,然后移动到窗体上的另一个位置,更改值等.

我想要一个加载屏幕而不是这个并在后台加载控件.这是一个相当大的应用程序,它并不重要,所以重新设计我的代码并不是一个真正的选择.

我可以在方法执行时简单地停止控件上的所有Update()命令吗?

Ste*_*e B 15

您可以使用SuspendLayoutResumeLayout方法在一次操作中包装UI的设置(不更新渲染).

基本上(假设SomeMethod是在表单类中):

private void SomeMethod()
{
    this.SuspendLayout();
    // all UI setup
    this.ResumeLayout();
}
Run Code Online (Sandbox Code Playgroud)