WinForm 實作視窗關閉方法

如何透過標準功能關閉WinForm視窗以及應用程序

exitToolStripMenuItem_Click:當用戶點擊我介面上面的TOOL中的離開按鈕,會執行此功能。

Form1_FormClosing:當用戶點擊視窗上面右上角的離開,會執行此功能。

exitToolStripMenuItem_Click會去呼叫Form1_FormClosing 並跳出視窗,問你是否要關閉如Fig1.

情境一

按壓後如果你點選否的話,會將視窗關閉功能取消掉,回到尚未關閉前。

=>e.Cancel = true; 直接取消Close功能。

情境二

按壓後如果你點選是的話,會將此Form進行關閉。接著會直接觸發Form1_FormClosed,在這個功能內你可以撰寫關閉後要處理那些事件,在這邊我呼叫了Application.ExitThread( ); 因為你要關閉的不只是Form你要關閉的是整個應用程序。執行完後整個應用程序就會被關閉。

Fig1,視窗關閉彈跳視窗

程式碼範例

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            while (MessageBox.Show("Exit Application?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.ExitThread( );
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            while (MessageBox.Show("Exit Application?", "", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
Fig2,各個按鈕功能呼叫

該如何添加事件到視窗內?

  • 回到設計頁面,並點選事件。
  • 單擊Form1_FormClosing,會自動產生事件到程式碼中。
  • 單擊Form1_FormClosed,會自動產生事件到程式碼中。
Fig3,視窗事件表

Posted inC#