C# 关闭多个相同窗口

有父窗口from,子窗口form1,form2,form3.....和窗口form_a,form_b,form_c......现在通过父窗口打开多个form1和form2... 有父窗口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["Client_1"].Dispose();}}用这个来关闭,如果只开了3个form_a的话就可以全部关闭,但如果我是开了4个以上的form_a就关闭不了,每次都剩下一两个......请问怎么回事?有没有其他办法实现? 展开
 我来答
匿名用户
2013-11-16
展开全部
因为没关闭一个, OpenForms会减少一个窗体,索引位置和总数就会改变
应该是这样:
if (Application.OpenForms[si].Name == "form_a")
{
Application.OpenForms[si].Close();
si--;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-16
展开全部
好吧 我想知道 你是不是就是想关闭所有程序? Application.Exit();可以关闭应用程序,不管你有几个窗口 这样不用调用close方法了,不知道你循环Dispose有何意义?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-16
展开全部
用数组(或泛型)存下打开的窗口实例,然后在关闭时循环关闭就行了啊,释放实例,有问题吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式