当我的表单加载时,我能冻结我的UI渲染吗?

本文关键字:我的 UI 冻结 加载 表单 | 更新日期: 2023-09-27 18:11:27

是否有任何方法可以暂停所有UI更新命令在Winforms?

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

所以当它加载时,我的效果是,用户可以看到一些控件出现在一个地方,然后移动到表单的另一个地方,改变值,等等。

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

我可以简单地停止所有更新()命令在一个方法正在执行的控制?

当我的表单加载时,我能冻结我的UI渲染吗?

您可以使用SuspendLayout和ResumeLayout方法在一次操作中包装UI的设置(不需要更新渲染)。

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

private void SomeMethod()
{
    this.SuspendLayout();
    // all UI setup
    this.ResumeLayout();
}

这真的取决于你的表单逻辑,一般情况下,你不应该重载LoadShow方法与太多的东西,这样的表单可以快速显示和绘制,总是看起来响应。

在某些情况下,它可以帮助使用SuspendLayout和ResumeLayout方法,见这里:控制。SuspendLayout方法