2012-05-27 112 views
37

我想進行MessageBox確認。下面是消息框:C#消息框對話框結果

MessageBox.Show("Do you want to save changes?", "Confirmation", messageBoxButtons.YesNoCancel); 

我想讓這樣的事情(在僞代碼):

if (MessageBox.Result == DialogResult.Yes) 
    ; 
else if (MessageBox.Result == DialogResult.No) 
    ; 
else 
    ; 

我怎樣才能做到這在C#?

回答

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

非常感謝你......這是很容易.. :) – biox

+0

這是我想要的,謝謝.... –

7

你也可以做一個行:

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

如果你想顯示在上面一個消息:

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

是,但是,「否則,如果」如果我把否則,如果(MessageBox中。顯示(「文本」,「標題」,MessageBoxButtons.YesNo)== DialogResult.No)該郵件將重新生成 – biox

+0

當然,但如果你只有兩個選擇是/否,你沒有理由使用其他如果... – sczdavos

+0

是的你糾正,但我有3是,不,取消:D – biox

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) 
{ 
    ... 
} 

希望它可以幫助

3

如果您使用WPF和以前的答案沒有幫助,您可以使用檢索結果:

var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question); 

if (result == MessageBoxResult.Yes) 
{ 
    // Do something 
} 
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; 
}