Comment puis-je créer une boîte de message avec « Oui », les choix « Non » et un DialogResult?

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

  •  27-09-2019
  •  | 
  •  

Question

Je veux faire simple Oui / Non choiced MessageBox, mais je pense qu'il est absurde de concevoir un formulaire pour cela. Je pensais que je pouvais utiliser MessageBox, boutons add, etc. pour y parvenir. Il est simple, mais puisqu'il n'y a pas DialogResult retourné, comment puis-je récupérer le résultat?

Était-ce utile?

La solution

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
}

Autres conseils

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 sont à la recherche.

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

Cette fonction renvoie une DialogResult que vous pouvez vérifier.

Par exemple,

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

Le MessageBox Finalité produire un DialogResults

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

Vous pouvez également spécifier les boutons assez facilement. Plus de documentation est disponible à http://msdn.microsoft.com/en-us /library/ba2a6d06.aspx

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

Vous pouvez également utiliser cette variante avec des chaînes de texte, voici le code modifié complet (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 un message icône

, MessageBoxIcon.Question

La réponse de @Mikael Svenson est correcte. Je voulais juste ajouter un petit plus il:

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

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
}

Vérifiez plus en détail de ici

Ce code simple a fonctionné pour moi. J'attrapée de MSDN ici:

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'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top