it-swarm.com.de

C # MessageBox-Dialogergebnis

Ich möchte eine MessageBox-Bestätigung machen. Hier ist das Meldungsfeld:

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

Und ich möchte so etwas machen (in Pseudocode):

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

Wie kann ich das in C # machen?

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

Du kannst es auch in einer Reihe machen:

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

Und wenn Sie eine Messagebox oben anzeigen möchten:

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

Wenn Sie WPF verwenden und die vorherigen Antworten nicht hilfreich sind, können Sie das Ergebnis abrufen, indem Sie Folgendes verwenden:

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

if (result == MessageBoxResult.Yes)
{
    // Do something
}
4
XtraSimplicity

Diese Antwort hat bei mir nicht funktioniert und ich fuhr fort mit MSDN . Dort habe ich festgestellt, dass der Code jetzt so aussehen sollte:

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

Ich hoffe es hilft

2
Edd

Anstatt if-Anweisungen zu verwenden, schlage ich vor, stattdessen einen Schalter zu verwenden, versuche ich, if-Anweisungen nach Möglichkeit zu vermeiden.

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;
}
2
Greyson Storm