当我的表单加载时,我能冻结我的UI渲染吗?
本文关键字:我的 UI 冻结 加载 表单 | 更新日期: 2023-09-27 18:11:27
是否有任何方法可以暂停所有UI更新命令在Winforms?
或者我有一种轻微的感觉,我试图去做这个完全错误的方式,所以有没有另一种方法来解决我的问题:我基本上加载一个保存状态的控件,它加载新的控件。然而,我在UI线程中做了一些,并且从另一个线程加载一些数据,然后填充UI。
所以当它加载时,我的效果是,用户可以看到一些控件出现在一个地方,然后移动到表单的另一个地方,改变值,等等。
我想要一个加载屏幕而不是这个,并在后台加载控件。这是一个相当大的应用程序,它不是那么重要,所以重新设计我的代码不是一个真正的选择。
我可以简单地停止所有更新()命令在一个方法正在执行的控制?
您可以使用SuspendLayout和ResumeLayout方法在一次操作中包装UI的设置(不需要更新渲染)。
基本上(假设SomeMethod
在表单类中):
private void SomeMethod()
{
this.SuspendLayout();
// all UI setup
this.ResumeLayout();
}
这真的取决于你的表单逻辑,一般情况下,你不应该重载Load
或Show
方法与太多的东西,这样的表单可以快速显示和绘制,总是看起来响应。
在某些情况下,它可以帮助使用SuspendLayout和ResumeLayout方法,见这里:控制。SuspendLayout方法