在BackgroundWorker忙的时候禁用表单?

Chr*_*ris 7 c# backgroundworker

当某个后台工作人员忙碌(工作)时,我不希望用户与我的应用程序进行交互.我创建了这个bgw,以便应用程序在工作时看起来不会冻结.但现在用户可以在应用程序中移动.如何禁用我的表单/应用程序?

谢谢!

Fre*_*örk 14

也许设定Enabledfalse

this.Enabled = false;
Run Code Online (Sandbox Code Playgroud)

但这有点激烈,因为它还可以防止表单被移动,调整大小或关闭事件.更好的方法是将Panel控件放在您的表单中Dock = Fill,然后将控件放入其中Panel.然后您可以使用该Enabled属性Panel来阻止进一步的用户输入.

注意认为用户能够关闭的形式,所以应该摆好某种方法来处理.

  • 这是一种快速而肮脏的方法,但是(根据您的情况)可能比禁用用户可以与之交互的表单上的每个控件更好(取决于您的情况)。 (2认同)