Vb.net 在任务栏中显示辅助窗体的模式对话框

Vb.net 在任务栏中显示辅助窗体的模式对话框,vb.net,forms,modal-dialog,Vb.net,Forms,Modal Dialog,我的应用程序有两个窗体,可以在Windows任务栏中看到。当主窗体上弹出模式对话框时,次窗体被锁定。但是,当用户单击任务栏上的辅助窗体时,它会显示在模式对话框上,并且基本上处于冻结状态 是否有办法确保模式对话框不会在辅助窗体下方绘制?topmost属性是不好的,因为它会在所有内容之上绘制,甚至是与应用程序无关的内容。您的问题可能是您没有指定对话框的所有者: 拥有的窗口通常不需要在windows任务栏上显示,因为它们从属于所有者。因为激活一个拥有的窗口会隐式地激活所有者,反之亦然,这只会使任务栏变

我的应用程序有两个窗体,可以在Windows任务栏中看到。当主窗体上弹出模式对话框时,次窗体被锁定。但是,当用户单击任务栏上的辅助窗体时,它会显示在模式对话框上,并且基本上处于冻结状态


是否有办法确保模式对话框不会在辅助窗体下方绘制?topmost属性是不好的,因为它会在所有内容之上绘制,甚至是与应用程序无关的内容。

您的问题可能是您没有指定对话框的所有者:

拥有的窗口通常不需要在windows任务栏上显示,因为它们从属于所有者。因为激活一个拥有的窗口会隐式地激活所有者,反之亦然,这只会使任务栏变得杂乱无章,使两者都有条目。因此,拥有的表单通常将其ShowInTaskBar属性设置为false

以下代码片段(在VB和C#中)显示正在创建、拥有和显示的新表单:

//在C#中定义所有者表单

myformownedform=newmyform()

ownedForm.ShowInTaskbar=false

AddOwnedForm(ownedForm)

ownedForm.Show()

在您的情况下,似乎需要设置对话框的所有者窗口。这将防止显示对话框的窗口出现在其上方


EDIT应该引用我的来源:。另外,我省略了VB.NET代码。我已经适当地鞭打了自己,但我不想费力地翻阅PDF文件来找到它。

我爱你,伙计。您为我们的应用程序组解决了一个重大问题:)太好了。