在.net的WinForm程序中,如果是直接起動的Form作為主窗口,那么這個主窗口是不能關閉的,因為它維護了一個Windows消息循環,它一旦關閉了就等於聲明整個應用程序結束,所以新打開的窗口也就被自動關閉了。因此要關閉的窗口不能用Application.Run創建。
要在關閉一個窗口的同時打開另一個窗口,可以按如下做法:
先在第一個窗口聲明一個公共的bool變量並賦值為true:
如public bool closeflag = true;
在program類里運行第二個窗口,主要代碼:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 form1 = new Form1();
form1.ShowDialog(); //模式窗口,先運行Form1的作用
if (from1.closeflag == false)
{
Application.Run(new Form2());
}
然后在Form1的關閉的相關控件(如按鈕或什么的,就是要關閉這個窗口的控件) 將closeflag賦值為false,並調用this.close();關閉第一個窗口。
出處:http://www.cnblogs.com/daban/archive/2012/07/06/2579471.html