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 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 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:
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:
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:
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
.NET Desktop feedback