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 classe MessageBox. Uma caixa de mensagem é exibida em modo modal. 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 WPF.

  • Uma barra de título com uma legenda (1).
  • Um botão de fechar (2).
  • Ícone (3).
  • Mensagem exibida ao 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 classe MessageBox. O método MessageBox.Show permite configurar o texto da caixa de mensagem, título, ícone e botões, mostrados no código a seguir:

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 sobrecargas do método MessageBox.Show fornecem maneiras de configurar a caixa de mensagem. Essas opções incluem:

  • Barra de título legenda
  • Mensagem ícone
  • Mensagem texto
  • Botões de Resposta

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

  • Exiba 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 seguinte imagem:

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

    É uma boa idéia usar as opções fornecidas pela classe de caixa de mensagem. Usando o mesmo alerta de antes, defina mais opções para torná-lo visualmente mais atraente:

    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 seguinte imagem:

    Uma caixa de mensagem de aviso para WPF que tem um ícone, legenda e 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 seguinte imagem:

    Uma caixa de mensagem simples para 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 seguinte imagem:

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

Manipular uma resposta de caixa de mensagem

O método MessageBox.Show 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, a MessageBoxResult correspondente é retornada. 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 com base nas opções do botão:

Opções de botão ESC ou resultado do botão Fechar
OK OK
OKCancel Cancel
YesNo ESC atalho de teclado 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 de MessageBox.

Ver também