在MessageBox上验证案例

时间:2018-10-04 21:55:44

标签: c# winforms

我有这样的消息框:

action(plan, event) {
  event.stopPropagation();
  // do your other action business
}

现在我想添加其他情况为“是”和“取消”,因为是 if (MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.No) { } ,所以我尝试:

MessageBoxButtons.YesNoCancel

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

  

无法将类型'System.Windows.Forms.DialogResult'隐式转换为   '布尔'

如何在验证中添加“是”和“取消”案例?

2 个答案:

答案 0 :(得分:3)

您需要将结果存储在@Pipe({ name: 'pairs' }) export class PairsPipe implements PipeTransform { transform(value: any) { return value.filter((v, i) => i % 2 == 0).map((v, i) => [value[i * 2], value[i * 2 + 1]]) } } 类型的变量中:

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

答案 1 :(得分:1)

问题是您应该将MessageBox.Show()的结果存储到变量中,然后使用ifswitch将结果与DialogResult枚举中的一个值进行比较。

DialogResult result = MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

if (result == DialogResult.Yes) {
    // do something for yes
} 
else if (result == DialogResult.Cancel)
{
   // do something for cancel
}
else
{
    // this will be no
}