¿Cómo se crea un cuadro de mensaje con “Sí”, las opciones “no” y un DialogResult?

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

  •  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?

¿Fue útil?

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í:

https://social.msdn.microsoft.com/Forums/en-US/d1092a96-96b0-4ca4-b716-0c8e55e42ee9/how-can-i-manage-messagebox-result-? foro = 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'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top