我想做一个MessageBox确认。这是消息框:
MessageBox.Show("Do you want to save changes?", "Confirmation", messageBoxButtons.YesNoCancel);
我想制作这样的东西(伪代码):
if (MessageBox.Result == DialogResult.Yes)
;
else if (MessageBox.Result == DialogResult.No)
;
else
;
我怎样才能在C#中做到这一点?
答案 0 :(得分:109)
DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{
//...
}
else if (result == DialogResult.No)
{
//...
}
else
{
//...
}
答案 1 :(得分:11)
您也可以在一行中执行此操作:
if (MessageBox.Show("Text", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes)
如果您想在顶部显示消息框:
if (MessageBox.Show(new Form() { TopMost = true }, "Text", "Text", MessageBoxButtons.YesNo) == DialogResult.Yes)
答案 2 :(得分:3)
如果您使用的是WPF且之前的答案没有帮助,您可以使用以下方法检索结果:
var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
// Do something
}
答案 3 :(得分:2)
这个答案对我不起作用所以我继续MSDN。在那里我发现现在代码应该是这样的:
//var is of MessageBoxResult type
var result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// If the no button was pressed ...
if (result == DialogResult.No)
{
...
}
希望有所帮助
答案 4 :(得分:2)
我建议使用切换,而不是使用if语句,我尽量避免使用if语句。
var result = MessageBox.Show(@"Do you want to save the changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
switch (result)
{
case DialogResult.Yes:
SaveChanges();
break;
case DialogResult.No:
Rollback();
break;
default:
break;
}