it-swarm.com.de

Wie erstelle ich ein Meldungsfeld mit den Optionen "Ja", "Nein" und einem DialogResult?

Ich möchte eine einfache MessageBox mit Ja/Nein-Auswahl erstellen, aber ich halte es für Unsinn, ein Formular dafür zu entwerfen. Ich dachte, ich könnte MessageBox verwenden, Schaltflächen hinzufügen usw., um dies zu erreichen. Es ist einfach, aber da kein DialogResult zurückgegeben wird, wie kann ich das Ergebnis abrufen?

329
Petr

Dies sollte es tun:

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

MessageBox Klasse ist das, wonach Sie suchen.

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

Dies gibt ein DialogResult zurück, das Sie überprüfen können.

Zum Beispiel,

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

Die MessageBox erzeugt ein DialogResults

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

Sie können die Schaltflächen auch einfach genug festlegen. Weitere Dokumentation finden Sie unter http://msdn.Microsoft.com/en-us/library/ba2a6d06.aspx

16
David

Verwenden:

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 wird unter Windows Phone anstelle von DialogResult verwendet ...

12
Khateeb321

Sie können diese Variante auch mit Textzeichenfolgen verwenden. Hier ist der vollständige geänderte Code (Code von Mikael), der in C # 2012 getestet wurde:

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

Sie können nach

.YesNo

ein Nachrichtensymbol einfügen

, MessageBoxIcon.Question
6
user2422690

@Mikael Svensons Antwort ist richtig. Ich wollte nur eine kleine Ergänzung hinzufügen:

Das Messagebox-Symbol kann auch enthalten sein und hat eine zusätzliche Eigenschaft wie die folgende:

DialogResult dialogResult = MessageBox.Show("Sure", "Please Confirm Your Action", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
5
Alston Antony
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
}

Überprüfen Sie mehr Details von hier

0
Harsh

Dieser einfache Code hat bei mir funktioniert. Ich habe es von MSDN hier geholt:

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'
0
Kyle Julé