-1

我想要它,以便一个名为“退出”的菜单项显示一个消息框,询问用户是否真的希望退出,但无论他们单击是还是否,它仍然会退出程序。

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;
        }
    }
4

3 回答 3

4

您正在使用代码关闭表单本身

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

在你的else街区。

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

于 2013-03-15T12:15:10.520 回答
2

你可以试试这个else

 if (MessageBox.Show("Do you really wish to exit?", "Exit?", MessageBoxButtons.YesNo) == DialogResult.Yes)
   {
     Application.Exit();
   }
于 2013-03-15T12:27:56.717 回答
1
 MessageBox.Show("Do you really wish to exit?", "Exit?", MessageBoxButtons.YesNo);
 Application.Exit();

我强烈反对这样做,因为它不利于用户可用性

于 2013-03-15T12:54:36.147 回答