2011-01-13 63 views
0

一旦我启动一个赢表单应用程序,我创建一个后台工作来做一些初始化。当这种初始化发生时,我希望表单中的所有按钮保持禁用状态。禁用所有控件,直到线程完成执行

我在想最好的办法是做什么。我能想到的一个直接的方法是在线程完成的事件中设置一个标志。还有其他更好的方法吗?

回答

2

在这样的情况下,我通常把控制成Panel,当后台进程启动禁用面板,然后当工作完成后再次启用它。这样你就不需要跟踪每个控件的Enabled状态。可以在窗体的Load事件处理程序(或OnLoad重写,具体取决于您的编码风格)中完成对面板的调试并启动后台工作程序。

0

有旧的“显示应用程序的截图”技巧;它给出了接近即时启动时间的错觉,当然用户无法与控件进行交互,直到用初始化表单替换图像。

您可以保持窗体隐藏,直到初始化完成,然后显示启动画面。

您可以显示一个模式对话框,一旦初始化完成后自动关闭。

1

我们可以使用委托disablealldelegate禁用所有控件线程的初始化和线程退出时,我们可以用另一种代表enablealldelegate,使所有的控件(或所需的控制)

使用splashscreens或loadingscreens或登录形式也是可行的

0

默认情况下,我会禁用窗体设计器中的按钮。

然后,我会将代码添加到我的初始化方法的末尾,以便在初始化的其余部分完成时启用它们。

相关问题