如何用“是”,“否”选项和DialogResult创build消息框?

我想简单的是/不selectMessageBox,但是我觉得为它devise一个表单是无稽之谈。 我以为我可以使用MessageBox,添加button等来实现这一点。 这很简单,但是由于没有返回DialogResult,我该如何检索结果呢?

这应该做到这一点:

DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo); if(dialogResult == DialogResult.Yes) { //do something } else if (dialogResult == DialogResult.No) { //do something else } 
 DialogResult dr = MessageBox.Show("Are you happy now?", "Mood Test", MessageBoxButtons.YesNo); switch(dr){ case DialogResult.Yes: break; case DialogResult.No: break; } 

从MessageBoxsearch。 MessageBox类是你在找什么。

 MessageBox.Show(title, text, messageboxbuttons.yes/no) 

这将返回一个可以检查的DialogResult。

例如,

 if(MessageBox.Show("","",MessageBoxButtons.YesNo) == DialogResult.Yes) { //do something } 

MessageBox 确实产生了一个DialogResults

 DialogResult r = MessageBox.Show("Some question here"); 

你也可以很容易地指定button。 更多文档可以在http://msdn.microsoft.com/en-us/library/ba2a6d06.aspxfind。;

使用:

 MessageBoxResult m = MessageBox.Show("The file will be saved here.", "File Save", MessageBoxButton.OKCancel); if(m == m.Yes) { // Do something } else if (m == m.No) { // Do something else } 

MessageBoxResult用于Windows Phone而不是DialogResult …

您也可以使用带有文本string的这个变体,这是在C#2012中testing的完整的变更代码(来自Mikael的代码):

 // Variable string MessageBoxTitle = "Some Title"; string MessageBoxContent = "Sure"; DialogResult dialogResult = MessageBox.Show(MessageBoxContent, MessageBoxTitle, MessageBoxButtons.YesNo); if(dialogResult == DialogResult.Yes) { //do something } else if (dialogResult == DialogResult.No) { //do something else } 

你可以在之后

 .YesNo 

插入一个消息图标

 , MessageBoxIcon.Question 

@Mikael Svenson的回答是正确的。 我只是想添加一个小的补充:

Messagebox图标也可以包含像下面这样的附加属性:

 DialogResult dialogResult = MessageBox.Show("Sure", "Please Confirm Your Action", MessageBoxButtons.YesNo, MessageBoxIcon.Question); 
 dynamic MsgResult = this.ShowMessageBox("Do you want to cancel all pending changes ?", "Cancel Changes", MessageBoxOption.YesNo); if (MsgResult == System.Windows.MessageBoxResult.Yes) { enter code here } else { enter code here } 

从这里查看更多细节

这个简单的代码为我工作。 我在这里从MSDN抓住它:

https://social.msdn.microsoft.com/Forums/en-US/d1092a96-96b0-4ca4-b716-0c8e55e42ee9/how-can-i-manage-messagebox-result-?forum=Vsexpressvcs

 if (System.Windows.Forms.MessageBox.Show ("Are you sure you want to add the audit?", "Add", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) ==System.Windows.Forms.DialogResult.Yes) // Do stuff after 'YES is clicked' else // DO stuff after 'NO is clicked'