两个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;
}
}
}
}
}
在检查了第一个消息框的结果之后再显示第二个消息框:
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;
}
}