我需要能够关闭一个表格并让它关闭除开关板之外的所有其他形式。我尝试使用这个代码,但它也关闭了frmSwitch,即使我试图编码它来关闭除了那之外的所有代码。我哪里做错了?我应该使用表格的实际名称正确吗?
Form[] forms = Application.OpenForms.Cast<Form>().ToArray();
foreach (Form thisForm in forms)
{
if (thisForm.Name != "frmSwitch") thisForm.Close();
}
答案 0 :(得分:1)
您需要检查是否thisForm is frmSwitch
,然后关闭其余部分。
foreach (Form thisForm in Application.OpenForms)
{
if (!(thisForm is frmSwitch))
thisForm.Close();
}
您也不必使用Cast<Form>
和ToArray
,您可以枚举FormCollection
答案 1 :(得分:0)
假设您从“主表单”
结束,这将有效var list = Application.OpenForms.Cast<Form>().ToArray();
foreach (Form item in list)
{
if (item.Equals(this)) continue;
item.Close();
}