方法一:
关闭子窗体后
form2.Closed += (ss,ee)=> { this.Close(); };
或Application.OpenForms集合找到要关闭的窗口,再Close:
foreach (var item in Application.OpenForms)
{
if (item is Form1) item.Close();
}
方法二:
B new_form = new B();
new_form.owner = this;
this.hide();
new_form.showdialog();
Application.ExitThread();
Application.ExitThread();是退出当前线程。
首先默认情况下我们的程序是单线程的,
this.hide();后把当前窗体隐藏起来了,然后new_form.showdialog();模态弹出新窗口。
这个时候线程不会继续执行(被阻塞了),
直到我们关闭了新弹出来的模态窗口后,程序才会继续执行Application.ExitThread();此时线程关闭,所有一切都关闭了,隐藏的窗口也关闭了。