2012-09-14 68 views
6

我在關閉應用程序之前使用此代碼來解決問題,但它無法正常工作。
我的代碼如下。表單關閉時的MessageBox

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    DialogResult dlgresult = MessageBox.Show("Exit or no?", 
           "My First Application", 
           MessageBoxButtons.YesNo, 
           MessageBoxIcon.Information); 
    if (dlgresult == DialogResult.No) 
    { 
     e.Cancel = true; 

    } 
    else 
    { 
    Application.Exit(); 
    } 
} 
+1

它拋出了什麼錯誤? –

+0

之後回覆沒有它的要求問題就平等地關閉 – Federal09

回答

15

你並不需要顯式調用Application.Exit(),因爲你是在FormClosing事件,這意味着關閉請求已被觸發(例如點擊交叉的形式按鈕,this.Close())。你只需要攔截關閉請求並指示e.Cancel = true;

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    if(MessageBox.Show("Exit or no?", 
         "My First Application", 
         MessageBoxButtons.YesNo, 
         MessageBoxIcon.Information) == DialogResult.No) { 
     e.Cancel = true; 
    } 
} 
+0

非常感謝=) – Federal09