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?
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
}
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.
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
}
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
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 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
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);
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
Ce code simple a fonctionné pour moi. Je l'ai récupéré de MSDN ici:
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'