我有一个表单,我想在执行异步事件期间阻止它。我想实现类似于显示对话框窗口时的效果,而无需显示或创建对话框窗口。
我不想手动禁用窗体上的控件,因为将来可能会添加某些控件(不一定由我添加)。出于美学原因,我想避免禁用整个表单/用户控件。
是否有一种标准/优雅的方式来实现这一目标,还是我走错了方向?
将其Enabled
属性设置为 false
来阻止 WinForm 窗口,但它会阻止用户对该窗口执行任何操作(如移动、调整大小或隐藏),并且可能非常烦人。考虑改为显示一些负载指示器。
我不建议在不使它们看起来被禁用的情况下禁用控件,因为它可能会混淆用户。
编辑:正如@AvoNappo指出的那样,窗口行为有所不同,具体取决于将Enable
属性设置为false
的位置:
如果您在构造函数中设置它,用户仍然可以移动/最小化/关闭窗口;
如果在构造函数之后调用它 窗口控制按钮和窗口移动也会被阻止。