如何阻止窗口,就像显示对话框窗口一样



我有一个表单,我想在执行异步事件期间阻止它。我想实现类似于显示对话框窗口时的效果,而无需显示或创建对话框窗口。

不想手动禁用窗体上的控件,因为将来可能会添加某些控件(不一定由我添加)。出于美学原因,我想避免禁用整个表单/用户控件。

是否有一种标准/优雅的方式来实现这一目标,还是我走错了方向?

您可以通过

将其Enabled属性设置为 false 来阻止 WinForm 窗口,但它会阻止用户对该窗口执行任何操作(如移动、调整大小或隐藏),并且可能非常烦人。考虑改为显示一些负载指示器。

我不建议在不使它们看起来被禁用的情况下禁用控件,因为它可能会混淆用户。

编辑:正如@AvoNappo指出的那样,窗口行为有所不同,具体取决于将Enable属性设置为false的位置:

  • 如果您在构造函数中设置它,用户仍然可以移动/最小化/关闭窗口;

  • 如果在构造函数之后调用它 窗口控制按钮和窗口移动也会被阻止。

最新更新