深入理解C#窗體關閉事件

很多初學者都想把默認的C#關閉按鈕事件弄明白,主要用在我想關閉窗口但是我還想在關閉前有一個提示,可是網上真的有太多的答案都是錯的,今天在這裡從頭到尾給大傢設置一下,希望可以幫到大傢。

1、第一步

這是在窗體屬性設置的名字不能和默認重名,否則不好使

2、第二步

名號命名好後,雙擊這個名字就可以對這個事件進行編輯瞭,找不到的就可以進入.cs文件自己查看

 private  void frmMom_FormClosing(object sender, FormClosingEventArgs e)
    {
        
        DialogResult result = MessageBox.Show("你確定要關閉嗎!", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
        if (result == DialogResult.OK)
        {
            Console.WriteLine("1");
            e.Cancel = false;
           //點擊OK
        }
        else
        {
           
            Console.WriteLine("2");
            e.Cancel = true;
        }
    }

3、最後可以檢查一下設計designer.cs的文件看看對不對

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMom_FormClosing);

this.frmMom_FormClosing不能和FormClosing 重名否則報錯,記住啊
還有一個屬性就是FormClosed,這個方法是用在關閉頁面後你想執行的方法,比如關閉頁面後關閉一個服務之類的。

C# 使用多線程,在關閉窗體時 怎麼關閉窗體的所有線程,使程序退出。

  • this.Close(); 隻是關閉當前窗口,若不是主窗體的話,是無法退出程序的,另外若有托管線程(非主線程),也無法幹凈地退出;
  • Application.Exit(); 強制所有消息中止,退出所有的窗體,但是若有托管線程(非主線程),也無法幹凈地退出;
  • Application.ExitThread(); 強制中止調用線程上的所有消息,同樣面臨其它線程無法正確退出的問題;
  • System.Environment.Exit(0); 這是最徹底的退出方式,不管什麼線程都被強制退出,把程序結束的很幹凈。
  • Thread_VIEW.Abort(); 關閉Thread_VIEW線程
  • Thread_SAVE.Abort(); 關閉Thread_SAVE線程

到此這篇關於深入理解C#窗體關閉事件的文章就介紹到這瞭,更多相關C#窗體關閉事件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: