C#如何關閉一個窗口的同時打開另一個窗口


在.net的WinForm程序中,如果是直接起動的Form作為主窗口,那么這個主窗口是不能關閉的,因為它維護了一個Windows消息循環,
它一旦關閉了就等於聲明整個應用程序結束,所以新打開的窗口也就被自動關閉了。因此要關閉的窗口不能用Application.Run創建。
如何使用Hide()(只是隱藏,其實進程還被占用着)之類或者Close()(這個操作會把所有窗體關閉,因為屬於同一個線程)是達不到我們需要的效果的。
要在關閉一個窗口的同時打開另一個窗口,可以按如下做法:

先在第一個窗口聲明一個公共的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();關閉第一個窗口。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM