在開發C#WinForm表單程式時,有沒有遇到過,在運行或者偵錯工具的過程中,明明關閉了子視窗,程式並沒有退出來,
我們編輯不了,要手動關閉停止調試或全部中斷等操作後,程式才退出來,這樣會不會覺得挺煩的。
我就簡單的分享一下我的經驗:
1、首先我們開啟子視窗的屬性,點擊“雷電表徵圖(下圖有框著)”找到 FormClosing(或者FormClosed)事件,雙擊
2、在GameUI_FormClosing事件裡編輯代碼
要是想在使用者關閉子視窗程式時給個提示框,可以加參考以下代碼:
private void GameUI_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("關閉表單後,程式會退出。。", "。。提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { e.Cancel = false; System.Environment.Exit(0); } else { e.Cancel = true; } } 註:以上代碼就在 FormClosing() 事件裡面寫
在c#中退出WinForm程式包括有很多方法,如:
this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等
1.this.Close(); 只是關閉當前視窗,若不是主表單的話,是無法退出程式的,另外若有託管線程(非主線程),也無法乾淨地退出;
2.Application.Exit(); 強制所有訊息中止,退出所有的表單,但是若有託管線程(非主線程),也無法乾淨地退出;
3.Application.ExitThread(); 強制中止調用線程上的所有訊息,同樣面臨其它線程無法正確退出的問題;
4.System.Environment.Exit(0); 這是最徹底的退出方式,不管什麼線程都被強制退出,把程式結束的很乾淨。
希望對你有協助。。。
歡迎在評論區討論,有什麼寫得不對的,歡迎指出來。