方法一:
關閉子窗體后
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();此時線程關閉,所有一切都關閉了,隱藏的窗口也關閉了。