Cómo abrir un cuadro de mensaje (WPF .NET)
Un cuadro de mensaje es un cuadro de diálogo que se usa para mostrar información rápidamente y, opcionalmente, para permitir que los usuarios tomen decisiones. La clase MessageBox proporciona acceso al cuadro de mensaje. Los cuadros de mensaje se muestran de forma modal. Y el código que muestra el cuadro de mensaje se pausa hasta que el usuario cierra el cuadro de mensaje, ya sea con el botón cerrar o con un botón de respuesta.
En la ilustración siguiente se muestran las partes de un cuadro de mensaje:
- Barra de título con una leyenda (1).
- Un botón Cerrar (2).
- Un icono (3).
- Mensaje que se muestra al usuario (4).
- Botones de respuesta (5).
Para presentar o recopilar datos complejos, un cuadro de diálogo podría ser más adecuado que un cuadro de mensaje. Para obtener más información, consulte Información general sobre cuadros de diálogo.
Presentación de un cuadro de mensaje
Para crear un cuadro de mensaje, use la clase MessageBox. El método MessageBox.Show le permite configurar el texto del cuadro de mensaje, el título, el icono y los botones, como se muestra en el código siguiente:
string messageBoxText = "Do you want to save changes?";
string caption = "Word Processor";
MessageBoxButton button = MessageBoxButton.YesNoCancel;
MessageBoxImage icon = MessageBoxImage.Warning;
MessageBoxResult result;
result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Yes);
Dim messageBoxText As String = "Do you want to save changes?"
Dim caption As String = "Word Processor"
Dim Button As MessageBoxButton = MessageBoxButton.YesNoCancel
Dim Icon As MessageBoxImage = MessageBoxImage.Warning
Dim result As MessageBoxResult
result = MessageBox.Show(messageBoxText, caption, Button, Icon, MessageBoxResult.Yes)
Las sobrecargas del método MessageBox.Show proporcionan maneras de configurar el cuadro de mensaje. Entre estas opciones se incluyen:
- Leyenda de la barra de título
- Icono del mensaje
- Texto del mensaje
- Botones de respuesta
Estos son algunos ejemplos más del uso de un cuadro de mensaje.
Mostrar una alerta.
MessageBox.Show("Unable to save file, try again.");
MessageBox.Show("Unable to save file, try again.")
El código anterior muestra un cuadro de mensaje como la imagen siguiente:
Se recomienda usar las opciones proporcionadas por la clase de cuadro de mensaje. Con la misma alerta que antes, establezca más opciones para que sea más atractiva visualmente:
MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error)
El código anterior muestra un cuadro de mensaje como la imagen siguiente:
Mostrar una advertencia.
MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning);
MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning)
El código anterior muestra un cuadro de mensaje como la imagen siguiente:
Hacer una pregunta al usuario.
if (MessageBox.Show("If the file save fails, do you want to automatically try again?", "Save file", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { // Do something here }
If MessageBox.Show("If the file save fails, do you want to automatically try again?", "Save file", MessageBoxButton.YesNo, MessageBoxImage.Question) = MessageBoxResult.Yes Then ' Do something here End If
El código anterior muestra un cuadro de mensaje como la imagen siguiente:
Controlar una respuesta de cuadro de mensaje
El método MessageBox.Show muestra el cuadro de mensaje y devuelve un resultado. El resultado indica cómo ha cerrado el usuario el cuadro de mensaje:
result = MessageBox.Show(messageBoxText, caption, button, icon, MessageBoxResult.Yes);
switch (result)
{
case MessageBoxResult.Cancel:
// User pressed Cancel
break;
case MessageBoxResult.Yes:
// User pressed Yes
break;
case MessageBoxResult.No:
// User pressed No
break;
}
result = MessageBox.Show(messageBoxText, caption, Button, Icon, MessageBoxResult.Yes)
Select Case result
Case MessageBoxResult.Cancel
' User pressed Cancel
Case MessageBoxResult.Yes
' User pressed Yes
Case MessageBoxResult.No
' User pressed No
End Select
Cuando un usuario presiona los botones en la parte inferior del cuadro de mensaje, se devuelve el MessageBoxResult correspondiente. Sin embargo, si el usuario presiona la tecla ESC o presiona el botón Cerrar (n.º 2 en la ilustración del cuadro de mensaje), el resultado del cuadro de mensaje varía en función de las opciones del botón:
Opciones de botón | Resultado del botón ESC o Cerrar |
---|---|
OK |
OK |
OKCancel |
Cancel |
YesNo |
Método abreviado de teclado ESC y botón Cerrar deshabilitados. El usuario debe presionar Sí o No. |
YesNoCancel |
Cancel |
Para obtener más información sobre el uso de cuadros de mensaje, consulte MessageBox y el ejemplo de MessageBox.
Vea también
.NET Desktop feedback