我的应用程序有两种形式,可在Windows任务栏中看到。在主窗体上弹出模式对话框时,辅助窗体将被锁定。但是,当用户单击任务栏上的辅助表单时,它将显示在模式对话框上,并且基本上已冻结。
有没有办法确保模式对话框不会在辅助表单下面绘制?最顶层的属性并不好,因为它吸取了所有内容,甚至是与应用程序无关的内容。
答案 0 :(得分:4)
您的问题可能是您没有为对话框指定所有者:
拥有的Windows通常不需要在Windows任务栏上使用自己的表示形式,因为它们从属于其所有者。因为激活拥有的窗口隐式地激活所有者,反之亦然,所以它只会使任务栏混乱以具有两者的条目。所以拥有的表单通常将其ShowInTaskBar属性设置为false。
以下代码片段(在VB和C#中)显示正在创建,拥有和显示的新表单:
// defining an owner form in C#
MyForm ownedForm = new MyForm();
ownedForm.ShowInTaskbar = false;
AddOwnedForm(ownedForm);
ownedForm.Show();
在您的情况下,您似乎需要设置对话框的所有者窗口。这样可以防止呈现对话框的窗口出现 over 。
编辑应该引用我的来源:.NET Windows Forms in a Nutshell。另外,我省略了VB.NET代码。我已经适当地鞭打了自己,但是不想趟过PDF文件来追踪它。