web-dev-qa-db-fra.com

Comment créer une boîte de message avec les choix "Oui", "Non" et un DialogResult?

Je veux faire un MessageBox simple Oui/Non choisi, mais je pense que c'est insensé de concevoir un formulaire pour cela. Je pensais pouvoir utiliser MessageBox, ajouter des boutons, etc. pour y parvenir. C'est simple, mais comme il n'y a pas de DialogResult retourné, comment puis-je récupérer le résultat?

329
Petr

Cela devrait le faire:

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 classe est ce que vous recherchez.

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

Cela renvoie un DialogResult que vous pouvez vérifier.

Par exemple,

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

Le MessageBox ne produit un DialogResults

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

Vous pouvez également spécifier les boutons assez facilement. Pour plus de documentation, visitez le site http://msdn.Microsoft.com/en-us/library/ba2a6d06.aspx

16
David

Utilisation:

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 est utilisé sur Windows Phone au lieu de DialogResult ...

12
Khateeb321

Vous pouvez également utiliser cette variante avec des chaînes de texte. Voici le code complet modifié (Code de Mikael), testé en 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
}

Vous pouvez après

.YesNo

insérer une icône de message

, MessageBoxIcon.Question
6
user2422690

La réponse de @Mikael Svenson est correcte. Je voulais juste ajouter un petit ajout à cela:

L'icône Messagebox peut également être incluse a une propriété supplémentaire comme ci-dessous:

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
}

Vérifiez plus de détail de ici

0
Harsh

Ce code simple a fonctionné pour moi. Je l'ai récupéré de MSDN ici:

https://social.msdn.Microsoft.com/Forums/en-US/d1092a96-96b0-4ca4-b716-0c8e55e42ee9/how-can-i-manage-messagebox-result-?forforum=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é