首页 > 解决方案 > 验证 MessageBox 上的案例

问题描述

我有这样的消息框:

 if (MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.No)
 {
 }

现在我想用“是”和“取消”添加其他情况,因为MessageBoxButtons.YesNoCancel我尝试这样:

 if (MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.No)
 {
 }
 else if (DialogResult.Yes)
 {
     return;
 }
 else if (DialogResult.Cancel)
 {
     return;
 }

但是 VisualStudio 标记为红色并抛出:

无法将类型“System.Windows.Forms.DialogResult”隐式转换为“bool”

我应该如何在验证中添加是和取消案例?

标签: c#winforms

解决方案


您需要将结果存储在类型的变量中DialogResult

var dialogResult = MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (dialogResult == DialogResult.No)
{
}
else if (dialogResult  == DialogResult.Yes)
{
    return;
}
else if (dialogResult == DialogResult.Cancel)
{
   return;
}

写成这样会更好:

var dialogResult = MessageBox.Show("Message", "System message",
                                   MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (dialogResult  == DialogResult.Yes || dialogResult == DialogResult.Cancel)
{
    return;
}

// logic for No here
// as this means No was pressed

推荐阅读