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