2013-03-15 48 views
-1

我想要一個名爲'Exit'的菜單欄項目會彈出一個MessageBox,詢問用戶他們是否真的想退出,但不管他們是否點擊Yes或No,它仍然會退出程序。MessageBox - 兩個按鈕做同樣的事情?

private void Exit_Click(object sender, EventArgs e) 
    { 
     // Shows a prompt asking the user if they really want to exit 
     DialogResult dQuit; 

     dQuit = MessageBox.Show("Do you really wish to exit?", 
           "Exit?", 
           MessageBoxButtons.YesNo, 
           MessageBoxIcon.Question); 

     // If 'Yes' button is clicked, close the program 
     if (dQuit == DialogResult.Yes) 
     { 
      Application.Exit(); 

     } 
     else 
     { 
      // Else, close the dialog box and return to the menu screen 
      this.DialogResult = System.Windows.Forms.DialogResult.No; 
     } 
    } 
+0

爲什麼...你可以有? messagebox說退出一個確定的按鈕,如果這真的是你需要的 – Sayse 2013-03-15 12:15:48

+0

我不知道你爲什麼要這樣的行爲。但在那種情況下,爲什麼要顯示一個MessageBox呢?只需退出而不詢問用戶。 – Otiel 2013-03-15 12:16:16

+0

調用'ShowDialog()'這個對話框的代碼是什麼樣的? – 2013-03-15 12:16:37

回答

4

你使用代碼

this.DialogResult = System.Windows.Forms.DialogResult.No; 

else塊關閉窗體本身。

您不必執行任何操作關閉MessageBox;只要用戶點擊其中一個按鈕,它就會自動關閉。直到MessageBox已經關閉,MessageBox.Show方法纔會返回。

2

你可以試試這個沒有else

if (MessageBox.Show("Do you really wish to exit?", "Exit?", MessageBoxButtons.YesNo) == DialogResult.Yes) 
    { 
    Application.Exit(); 
    } 
+0

我甚至不會有'如果',只是messagebox顯示然後應用程序退出(我的意思是如果我想要這樣做) – Sayse 2013-03-15 12:49:59

+0

那麼你將如何捕獲'DialogResult'? – Arshad 2013-03-15 12:51:18

+0

關於捕捉它並不重要,因爲他想要做同樣的事情,無論 – Sayse 2013-03-15 12:52:20

1
MessageBox.Show("Do you really wish to exit?", "Exit?", MessageBoxButtons.YesNo); 
Application.Exit(); 

我強烈建議在所有這樣做,雖然,因爲它是可憐的用戶可用性

+0

你測試你的答案,它適用於這兩種情況(按鈕) – Arshad 2013-03-15 12:57:05

+0

這個答案迴應用戶問題 「但無論他們是否點擊是或否,它仍然退出程序。」 – Sayse 2013-03-15 12:58:48

+0

那麼什麼是'MessageBox'的需要? – Arshad 2013-03-15 12:59:37

相關問題