首页 > 解决方案 > 如果是另一个具有相同名称的表单打开 C#,则关闭表单

问题描述

我试图关闭一个已经打开的表单,这个表单是应用程序的主要部分,所以如果我关闭这个表单的所有实例,应用程序就会结束。我正在尝试查找该表单是否已打开,如果已打开多个,则将其关闭:

有了这个,我打开了名为“Main”的实例:

int nPrincOpen = openForms
 .OfType<Form>()
 .Where(form => String.Equals(form.Name, "Main"))
 .ToList()
 .Count();

我关闭了这些表格,但我关闭了所有表格:

for (int i = 0; i < nPrincOpen - 1; i++)
{
         Application.OpenForms
    .OfType<Form>()
    .Where(form => String.Equals(form.Name, "Main"))
    .ToList()
    .ForEach(form => form.Close());           
}

我怎样才能关闭所有表格,除了一个使用链接的表格?

标签: c#

解决方案


让第一个表单保持打开状态。

Application.OpenForms
.OfType<Form>()
.Where(form => String.Equals(form.Name, "Main"))
.Skip(1)
.ToList()
.ForEach(form => form.Close());  

推荐阅读