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

时间:2017-10-06 12:34:10

标签: c# .net winforms

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

我不想手动禁用表单上的控件,因为将来可能会添加一些控件(不一定是我)。我希望避免因美观原因而禁用整个表单/用户控件。

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

1 个答案:

答案 0 :(得分:1)

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

我不建议禁用控件而不禁用它们,因为它可能会使用户感到困惑。

修改:@AvoNappo指出窗口行为的不同取决于将Enable属性设置为false的位置:

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

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