¿Cómo se crea un cuadro de mensaje con “Sí”, las opciones “no” y un DialogResult?
-
27-09-2019 - |
Pregunta
Quiero hacer sencilla Sí / No choiced de mensaje, pero creo que no tiene sentido diseñar una forma para eso. Pensé que podría utilizar de mensaje, botones añaden, etc., para lograr esto. Es simple, pero ya que no hay DialogResult regresó, ¿Cómo recupero el resultado?
Solución
Esto debe hacerlo:
DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
//do something
}
else if (dialogResult == DialogResult.No)
{
//do something else
}
Otros consejos
DialogResult dr = MessageBox.Show("Are you happy now?",
"Mood Test", MessageBoxButtons.YesNo);
switch(dr)
{
case DialogResult.Yes:
break;
case DialogResult.No:
break;
}
de mensaje clase es lo que están buscando.
MessageBox.Show(title, text, messageboxbuttons.yes/no)
Esto devuelve una DialogResult que se puede comprobar.
Por ejemplo,
if(MessageBox.Show("","",MessageBoxButtons.YesNo) == DialogResult.Yes)
{
//do something
}
El cuadro de mensaje hace producir una DialogResults
DialogResult r = MessageBox.Show("Some question here");
También puede especificar los botones con bastante facilidad. Más documentación se puede encontrar en http://msdn.microsoft.com/en-us /library/ba2a6d06.aspx
Uso:
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 se utiliza en Windows Phone en lugar de DialogResult ...
También puede utilizar esta variante con cadenas de texto, aquí está el código modificado completa (Código de Mikael), probado 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
}
Puede después
.YesNo
insertar un icono de mensaje
, MessageBoxIcon.Question
La respuesta de @Mikael Svenson es correcta. Yo sólo quería añadir una pequeña adición a la misma:
El icono de Messagebox también puede incluirse tiene una propiedad adicional, como a continuación:
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
}
Verificar más detalle de aquí
Este código simple que funcionó para mí. La agarré de MSDN aquí:
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'