C# 关闭多个相同子窗口
有父窗口from,子窗口form1,form2,form3.....和窗口form_a,form_b,form_c......
现在通过父窗口打开多个form1和form2....子窗口后,每个子窗口再打开多个form_a,form_b...
例如:form1,打开了4个form_a.我想一次性全部关闭form1对应的所有form_a,
我用: List<form_a> list = new List<form_a>(); //检测并关闭
for (int si = 0; si < Application.OpenForms.Count; si++)
{
if (Application.OpenForms[si].Name == "form_a")
{
//Application.OpenForms[si].Close();
Application.OpenForms["form_a"].Dispose();
}
}
用这个来关闭,如果只开了3个form_a的话就可以全部关闭,但如果我是开了4个以上的form_a就关闭不了,每次都剩下一两个......请问怎么回事?有没有其他办法实现?
------最佳解决方案--------------------for循环的时候 Application.OpenForms变化了,你只能关掉前面几个,这样就可以了:
for (int si = Application.OpenForms.Count-1; si >=0 ; si--)
{
if (Application.OpenForms[si].Name == "form_a")
{
Application.OpenForms[si].Close();
// Application.OpenForms["form_a"].Dispose();
}
}
------其他解决方案--------------------太谢谢你了,终于可以了