C#開發WinForm窗體程式時,如何在子窗體中關閉視窗時並退出程式?
阿新 • • 發佈:2019-02-14
在開發C#WinForm窗體程式時,有沒有遇到過,在執行或者除錯程式的過程中,明明關閉了子視窗,程式並沒有退出來,
我們編輯不了,要手動關閉停止除錯或全部中斷等操作後,程式才退出來,這樣會不會覺得挺煩的?
我就簡單的分享一下我的經驗:
1、首先我們開啟子視窗的屬性,點選“雷電圖示(下圖有框著)”找到 FormClosing(或者FormClosed)事件,雙擊
2、在GameUI_FormClosing事件裡編輯程式碼
要是想在使用者關閉子視窗程式時給個提示框,可以加參考以下程式碼:
注:以上程式碼就在 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; } }
在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); 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。
希望對你有幫助!!!
歡迎在評論區討論,有什麼寫得不對的,歡迎指出來!