隐藏所有开放的表格

Sea*_*ock 7 c#

我有三种形式.

让我们说A,B,C.

表格A打开表格B,表格B打开表格C.

我添加了按钮隐藏表单C中的所有打开表单.

现在如何使用此按钮隐藏所有三个表单?

我知道有一种方法是使用ShowWindow Api,但我不想使用Api调用.

编辑: 感谢SoMoS.

for (int i = Application.OpenForms.Count - 1; i >= 0; i += -1)
{
     if (!object.ReferenceEquals(Application.OpenForms[i], this))
     {
          Application.OpenForms[i].Hide();
     }
}
this.Hide();
Run Code Online (Sandbox Code Playgroud)

要么

形式A(感谢ho1)

B frm = new B();
frm.Owner = this;
frm.Show();
Run Code Online (Sandbox Code Playgroud)

在表格B中

C frm = new C();
frm.Owner = this;
frm.Show();
Run Code Online (Sandbox Code Playgroud)

在表单C的按钮单击事件中.

Owner.Owner.Hide();
Owner.Hide();
Hide();
Run Code Online (Sandbox Code Playgroud)

或者感谢Wim Coenen

foreach (Form var in Application.OpenForms)
{
     var.Hide();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ign*_*cia 7

您只需要访问此集合:

Application.OpenForms
Run Code Online (Sandbox Code Playgroud)

然后你只需要遍历所有项目并隐藏你想要的项目(你可以通过标题检查)或者只是隐藏所有项目.

希望能帮助到你.