关闭所有表单,除了我的主表单
本文关键字:表单 我的 | 更新日期: 2023-09-27 18:17:29
我使用WinForms
。我想关闭所有的表单,除了我的主表单Form1
。我注意到我的主要形式是索引0,所以我想知道我是否可以做一些事情,关闭所有的形式,除了索引0。我该怎么做呢?这是我目前掌握的信息。
List<Form> openForms = new List<Form>();
foreach (Form f in Application.OpenForms)
{
openForms.Add(f);
int mainFormIndex = openForms.IndexOf(0);
Console.WriteLine(": " + mainFormIndex);
if(mainFormIndex != 0)
{
this.Owner.Close();
}
else
{
this.Close();
}
}
}
您可以使用linq关闭除Form1
实例外的所有表单:
Application.OpenForms.Cast<Form>().Where(x => !(x is Form1))
.ToList().ForEach(x => x.Close());
您可以检查表单的名称,然后关闭,例如,如果您需要保持Form1打开并关闭所有其他表单;
for (int i = Application.OpenForms.Count - 1; i >= 0; i--)
{
if (Application.OpenForms[i].Name != "Form1")
{
Application.OpenForms[i].Close();
}
}