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

來源:互聯網
上載者:User

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


希望對你有協助。。。

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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.