Partilhar via


Como abrir uma caixa de mensagem (WPF .NET)

Uma caixa de mensagem é uma caixa de diálogo usada para exibir informações rapidamente e, opcionalmente, permitir que os usuários tomem decisões. O acesso à caixa de mensagem é fornecido pela MessageBox classe. Uma caixa de mensagem é exibida modalmente. E o código que exibe a caixa de mensagem é pausado até que o usuário feche a caixa de mensagem com o botão Fechar ou um botão de resposta.

A ilustração a seguir demonstra as partes de uma caixa de mensagem:

Uma figura que mostra as partes de uma caixa de mensagem para o WPF.

  • Uma barra de título com uma legenda (1).
  • Um botão Fechar (2).
  • Ícone (3).
  • Mensagem exibida para o usuário (4).
  • Botões de resposta (5).

Para apresentar ou coletar dados complexos, uma caixa de diálogo pode ser mais adequada do que uma caixa de mensagem. Para obter mais informações, consulte Visão geral das caixas de diálogo.

Exibir uma caixa de mensagem

Para criar uma caixa de mensagem, use a MessageBox classe. O MessageBox.Show método permite configurar o texto, o título, o ícone e os botões da caixa de mensagem, mostrados no seguinte código:

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)

As MessageBox.Show sobrecargas de método fornecem maneiras de configurar a caixa de mensagem. Estas opções incluem:

  • Legenda da barra de título
  • Ícone de mensagem
  • Texto da mensagem
  • Botões de resposta

Aqui estão mais alguns exemplos de uso de uma caixa de mensagem.

  • Exibir um alerta.

    MessageBox.Show("Unable to save file, try again.");
    
    MessageBox.Show("Unable to save file, try again.")
    

    O código anterior exibe uma caixa de mensagem como a imagem a seguir:

    Uma caixa de mensagem simples para WPF que não tem opções configuradas.

    É uma boa ideia usar as opções fornecidas pela classe message box. Usando o mesmo alerta de antes, defina mais opções para torná-lo mais atraente 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)
    

    O código anterior exibe uma caixa de mensagem como a imagem a seguir:

    Uma caixa de mensagem de aviso para o WPF que tem um ícone, uma legenda e um texto.

  • Exiba um aviso.

    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)
    

    O código anterior exibe uma caixa de mensagem como a imagem a seguir:

    Uma caixa de mensagem simples para o WPF que exibe um ícone de aviso.

  • Faça uma pergunta ao usuário.

    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
    

    O código anterior exibe uma caixa de mensagem como a imagem a seguir:

    Uma caixa de mensagem simples para o WPF que solicita ao usuário uma pergunta sim ou não.

Manipular uma resposta de caixa de mensagem

O MessageBox.Show método exibe a caixa de mensagem e retorna um resultado. O resultado indica como o usuário fechou a caixa de mensagem:

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

Quando um usuário pressiona os botões na parte inferior da caixa de mensagem, o correspondente MessageBoxResult é retornado. No entanto, se o usuário pressionar a tecla ESC ou pressionar o botão Fechar (#2 na ilustração da caixa de mensagem), o resultado da caixa de mensagem varia de acordo com as opções do botão:

Opções de botão Resultado do botão ESC ou Fechar
OK OK
OKCancel Cancel
YesNo Atalho de teclado ESC e botão Fechar desativado. O usuário deve pressionar Sim ou Não.
YesNoCancel Cancel

Para obter mais informações sobre como usar caixas de mensagem, consulte MessageBox e o exemplo MessageBox.

Confira também