C#中可不可以关闭父窗体中当前已打开的所有子窗体

当打开新的一个子窗体时 如果要检测之前打开的是什么子窗体,太麻烦,所以有没有什么语句能关闭所有的子窗体 然后再打开新的子窗体

第1个回答  2012-05-11
你关闭进程private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
第2个回答  2012-05-07
循环检查关闭。
第3个回答  推荐于2016-11-08
foreach (Form form in this.OwnedForms)
{
if (!form.IsDisposed)
{
form.Close();
}
}
没试过可不可行追问

不行 没效果

追答

foreach (Form form in this.MdiChildren)
{
if (!form.IsDisposed)
{
form.Close();
}
}
这个试过可行,不过前提得将两个窗体设置成父子窗体,不是单单有它打开的窗体就叫子窗体

追问

哇 成功了 谢谢 能给个QQ吗 我还有问题要问。。快不能追问了

C# form1.MdiParent= 后面不写this 想写别的窗体要怎么写
由于这个按钮不在父窗体中 所以不能用this 但是我又想让这个子窗体显示在formmain这个父窗体中 要怎么弄?

追答

其实第一种方法也是可以的,只不过你先要用this.AddOwnedForm(Form)方法设置成归this窗体所有。对于你的问题,你可以把你要作为的父窗体在这里声明一个对象就行了。QQ417639593

本回答被提问者和网友采纳
相似回答