information - Resultado del diálogo C#MessageBox
messagebox dialogresult c# (5)
En lugar de usar sentencias if, sugiero usar un conmutador en su lugar, trato de evitar el uso de sentencias if cuando sea posible.
var result = MessageBox.Show(@"Do you want to save the changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
switch (result)
{
case DialogResult.Yes:
SaveChanges();
break;
case DialogResult.No:
Rollback();
break;
default:
break;
}
Quiero hacer una confirmación MessageBox. Aquí está el cuadro de mensaje:
MessageBox.Show("Do you want to save changes?", "Confirmation", messageBoxButtons.YesNoCancel);
Y quiero hacer algo como esto (en pseudocódigo):
if (MessageBox.Result == DialogResult.Yes)
;
else if (MessageBox.Result == DialogResult.No)
;
else
;
¿Cómo puedo hacer eso en C #?
Esta respuesta no funcionaba para mí, así que fui a MSDN . Ahí descubrí que ahora el código debería verse así:
//var is of MessageBoxResult type
var result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// If the no button was pressed ...
if (result == DialogResult.No)
{
...
}
Espero eso ayude
Si está utilizando WPF y las respuestas anteriores no ayudan, puede recuperar el resultado usando:
var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
// Do something
}
También puedes hacerlo en una fila:
if (MessageBox.Show("Text", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes)
Y si quieres mostrar un cuadro de mensaje en la parte superior:
if (MessageBox.Show(new Form() { TopMost = true }, "Text", "Text", MessageBoxButtons.YesNo) == DialogResult.Yes)
DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{
//...
}
else if (result == DialogResult.No)
{
//...
}
else
{
//...
}