Compartilhar via


Como abrir uma caixa de mensagem

Uma caixa de mensagem é uma caixa de diálogo que é usada para exibir rapidamente as informações e, opcionalmente, permitir que os usuários tome decisões. O acesso à caixa de mensagem é fornecido pela MessageBox classe. Uma caixa de mensagem é exibida de forma 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 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 a visão geral das caixas de diálogo.

Exibir uma caixa de mensagem

Para criar uma caixa de mensagem, use a classe MessageBox. O MessageBox.Show método permite que você configure o texto, o título, o ícone e os botões da caixa de mensagem, 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. Estas opções incluem:

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

Aqui estão mais alguns exemplos de como usar 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 seguinte imagem:

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

    É uma boa ideia usar as opções fornecidas pela classe de caixa de mensagem. 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 seguinte imagem:

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

  • Exibir 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 o WPF que solicita ao usuário uma pergunta sim ou não.

Lidar com 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 (nº 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 desabilitado. 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.

Consulte também