在.net的WinForm程序中,若是是直接起動的Form做爲主窗口,那麼這個主窗口是不能關閉的,由於它維護了一個Windows消息循環,它一旦關閉了就等於聲明整個應用程序結束,因此新打開的窗口也就被自動關閉了。所以要關閉的窗口不能用Application.Run建立。
要在關閉一個窗口的同時打開另外一個窗口,能夠按以下作法:html
先在第一個窗口聲明一個公共的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());
}this
而後在Form1的關閉的相關控件(如按鈕或什麼的,就是要關閉這個窗口的控件) 將closeflag賦值爲false,並調用this.close();關閉第一個窗口。.net
出處:http://www.cnblogs.com/daban/archive/2012/07/06/2579471.htmlorm