2013-03-15 40 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

相关问题