MessageBox - 两个按钮做同样的事情?

时间:2013-03-15 12:13:06

标签: c# winforms

我想要它,以便名为'Exit'的menustrip项目会显示一个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;
        }
    }

3 个答案:

答案 0 :(得分:4)

您正在使用代码

关闭表单
this.DialogResult = System.Windows.Forms.DialogResult.No;

else区块中。

您无需执行任何操作来关闭MessageBox;只要用户单击其中一个按钮,它就会自动关闭。在MessageBox已经关闭之前,MessageBox.Show方法不会返回。

答案 1 :(得分:2)

您可以在没有else的情况下尝试此操作:

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

答案 2 :(得分:1)

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

我强烈反对这样做,尽管因为用户可用性很差