1. 程式人生 > >C#開發WinForm窗體程式時,如何在子窗體中關閉視窗時並退出程式?

C#開發WinForm窗體程式時,如何在子窗體中關閉視窗時並退出程式?

       在開發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);  這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。

希望對你有幫助!!!

歡迎在評論區討論,有什麼寫得不對的,歡迎指出來!