两个MessageBox退出确认消息

本文关键字:消息 确认 退出 MessageBox 两个 | 更新日期: 2023-09-27 17:53:50

我有一个问题与我的确认消息…我有两个MessageBox,第一个问"你想退出吗?"第二个,问"你确定吗?"我的问题是,如果我选择是,当第一个消息框"你想退出吗?"显示,第二个消息框仍然会出现。

namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        private void Form1_FormClosing(Object sender, FormClosingEventArgs e)
        {
            var confirmationBox = MessageBox.Show(@"Do you want to quit", @"Title",
                                                  MessageBoxButtons.YesNo);
            var confirmationBox2 = MessageBox.Show(@"Are you sure?", @"", MessageBoxButtons.YesNo);

            if (confirmationBox == DialogResult.Yes)
            {
                if (confirmationBox2 == DialogResult.No)
                {
                    e.Cancel = true;
                }
            }
        }
    }
}

两个MessageBox退出确认消息

在检查了第一个消息框的结果之后再显示第二个消息框:

var confirmationBox = MessageBox.Show(@"Do you want to quit", @"Title",
    MessageBoxButtons.YesNo);
if (confirmationBox == DialogResult.Yes)
{
    var confirmationBox2 = MessageBox.Show(@"Are you sure?", @"", MessageBoxButtons.YesNo);
    if (confirmationBox2 == DialogResult.No)
    {
        e.Cancel = true;
    }
}

注:用这样的对话框惹恼用户是很烦人的;考虑不要这样做,除非有一个真正令人信服的理由,他们不应该立即关闭(例如,在一个操作中间,将留在一个无效的状态,或有未保存的数据)。

实际情况是,您正在显示消息框,然后检查每个响应。

你要做的是在你的if语句中执行show并检查响应。

if (MessageBox.Show(@"Do you want to quit", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes) {
    if (MessageBox.Show(@"Are you sure?", @"", MessageBoxButtons.YesNo) == DialogResult.No) {
       e.Cancel = true; 
    }
}