C#消息框对话框结果

我想做一个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#中做到这一点?

 DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel); if(result == DialogResult.Yes) { //... } else if (result == DialogResult.No) { //... } else { //... } 

你也可以做一行:

 if (MessageBox.Show("Text", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes) 

如果你想在上面显示一个消息框:

 if (MessageBox.Show(new Form() { TopMost = true }, "Text", "Text, MessageBoxButtons.YesNo) == DialogResult.Yes) 

如果您使用的是WPF ,而以前的答案没有帮助,则可以使用以下方法检索结果:

 var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { // Do something } 

这个答案不适合我,所以我去了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) { ... } 

希望能帮助到你

而不是使用if语句,我build议使用switch来代替,尽量避免使用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; }