Compartir por


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:

Ilustración que muestra las partes de un cuadro de mensaje para WPF.

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

    Cuadro de mensaje simple para WPF que no tiene opciones configuradas.

    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:

    Cuadro de mensaje de advertencia para WPF que tiene un icono, un título y un texto.

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

    Cuadro de mensaje simple para WPF que muestra un icono de advertencia.

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

    Cuadro de mensaje simple para WPF que hace al usuario una pregunta cuya respuesta es sí o no.

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