Wie erstelle ich ein Meldungsfenster mit „Ja“, „Nein“ Auswahl und ein Dialogresult?

StackOverflow https://stackoverflow.com/questions/3036829

  •  27-09-2019
  •  | 
  •  

Frage

Ich will make einfaches Ja / Nein choiced MessageBox, aber ich denke, dass es Unsinn ist, eine Form für das Design. Ich dachte, ich MessageBox, Add Buttons, etc. verwenden könnte dies zu erreichen. Es ist einfach, aber da es keine Dialogresult zurückgegeben, wie rufe ich das Ergebnis?

War es hilfreich?

Lösung

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

Andere Tipps

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, was Sie suchen.

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

Das gibt ein Dialogresult, die Sie überprüfen können.

Beispiel:

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

Die MessageBox hat produzieren eine DialogResults

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

Sie können auch die Tasten leicht genug angeben. Weitere Dokumentation finden Sie unter http://msdn.microsoft.com/en-us finden /library/ba2a6d06.aspx

Verwendung:

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
}

ist MessageBoxResult auf Windows Phone verwendet statt Dialogresult ...

Sie können auch diese Variante mit Text-Strings verwenden, hier ist der komplette geändertene Code (Code von Mikael), getestet in C # 2012:

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

Legen Sie eine Nachrichtensymbol

, MessageBoxIcon.Question

Antwort @Mikael Svenson ist korrekt. Ich wollte nur einen kleinen Zusatz, um es hinzuzufügen:

Die Messagebox Symbol kann auch enthalten sein, hat eine zusätzliche Eigenschaft wie folgt:

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
}

detailliertes Prüfen von hier

Mit diesem einfachen Code für mich gearbeitet. Ich packte es aus MSDN hier:

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'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top