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