我想
1)在主窗口上,我有Form1
2)我有一名后台工作人员正在寻找特定的事情
3)当发生某些特定情况时,我想“模糊”整个屏幕,所以我在后台工作器中生成了一个新的BlurForm(这可行)
4)另外,在此BlurForm上,我想要一个对话框,用户可以在其中输入他的姓名和年龄。
我的问题:
1)调用对话框后,“模糊”立即消失
2)整个应用程序“冻结”
我的代码:
MyBackgroundWorker.cs
var blurrer = new BlurForm(_parent) // _parent is Form1 (main Form)
blurrer.ShowSpecificDialog(new MyData(){...});
BlurForm.cs
public BlurForm(Form owner){
_owner = owner;
Initialize(owner); // Set width, color etc.
Show(); // Default method to show.
}
public DialogResult ShowSpecificDialog(MyData data){
var dialog = new MyDialog(this, data); // this = parent-form of the dialog
return dialog.ShowDialog(_owner);
}
现在发生的是,BlurForm显示(屏幕是我希望的那样模糊),对话框显示(但是它也被模糊“覆盖”了(为什么?)),屏幕“冻结”了(我认为模糊“块”)。一旦我将焦点从BlurForm上移开,它就会“解除阻止”,消失并显示对话框。
我在做什么错了?