.net 确定在WinForms中以何种方式形成覆盖父窗体

.net 确定在WinForms中以何种方式形成覆盖父窗体,.net,vb.net,winforms,.net,Vb.net,Winforms,我想找出是什么形式阻碍了父母的行为 我的环境有点复杂。我得到了一个AppToolBar(像任务栏),它是应用程序的主要形式。因此,我自己的工具栏打开的所有表单都是 ShowInTaskbar = False 因为我自己的工具栏上显示了。此外,应用程序直接(通过AppToolBar)打开的所有表单都存储在列表中。让我们假设我有Form1、Form2和Form3。Form1和Form2由AppToolBar直接打开,Form3由Form1创建,然后由显示 Form3.ShowDialog(Form

我想找出是什么形式阻碍了父母的行为

我的环境有点复杂。我得到了一个AppToolBar(像任务栏),它是应用程序的主要形式。因此,我自己的工具栏打开的所有表单都是

ShowInTaskbar = False
因为我自己的工具栏上显示了。此外,应用程序直接(通过AppToolBar)打开的所有表单都存储在列表中。让我们假设我有Form1、Form2和Form3。Form1和Form2由AppToolBar直接打开,Form3由Form1创建,然后由显示

Form3.ShowDialog(Form1)
在某种程度上,用户最小化了我的整个应用程序,然后调用

Form1.Hide
Form2.Hide
我无法将Form1的状态设置为minimized,因为它会在任务栏上方显示为最小化窗口,因为它不会显示在任务栏中。现在Form1应该调用Form3.Hide。那么我如何才能发现,从Form1的角度来看,Form3阻碍了Form1


干杯。

为了回答这个问题,而汉斯没有公布他的答案,我会的

你打电话会收到所有未结的表格

Application.OpenForms

这会给你所有的表格。要找出哪个表单阻止Form1,只需在所有打开的表单中搜索Owner属性,并返回所有者为Form1的表单。

隐藏对话框将关闭该对话框。您可以使用Application.OpenForms属性找到表单,并查看谁拥有具有Owner属性的表单。@HansPassant我不知道,隐藏将关闭它。非常感谢。我必须把它最小化,但没关系。Application.OpenForms正是我要搜索的。您想将此创建为一个答案吗?然后我可以接受它作为一个解决方案。