消息框是一个对话框,用于快速显示信息,并选择性地允许用户做出决策。 MessageBox 类提供对消息框的访问权限。 以 模式方式显示消息框。 显示消息框的代码将暂停,直到用户使用关闭按钮或响应按钮关闭消息框。
下图演示了消息框的各个部分:
- 带有标题的标题栏(1)。
- 关闭按钮(2)。
- 图标(3)。
- 向用户显示的消息(4)。
- 响应按钮 (5)。
对于呈现或收集复杂数据,对话框可能比消息框更合适。 有关详细信息,请参阅 对话框概述。
显示消息框
若要创建消息框,请使用该 MessageBox 类。 此方法 MessageBox.Show 允许你配置消息框文本、标题、图标和按钮,如以下代码所示:
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)
MessageBox.Show 方法重载提供了配置消息框的方式。 这些选项包括:
- 标题栏 标题
- 消息 图标
- 消息 文本
- 响应 按钮
下面是使用消息框的更多示例。
显示警报。
MessageBox.Show("Unable to save file, try again.");
MessageBox.Show("Unable to save file, try again.")
前面的代码显示如下图所示的消息框:
最好使用消息框类提供的选项。 使用与之前相同的警报,设置更多选项,使其更具视觉吸引力:
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)
前面的代码显示如下图所示的消息框:
显示警告。
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)
前面的代码显示如下图所示的消息框:
向用户提问。
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
前面的代码显示如下图所示的消息框:
处理消息框响应
该方法 MessageBox.Show 显示消息框并返回结果。 结果指示用户如何关闭消息框:
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
当用户按下消息框底部的按钮时,将返回相应的 MessageBoxResult 按钮。 但是,如果用户按 ESC 键或按 “关闭 ”按钮( 消息框图中的#2),则消息框的结果因按钮选项而异:
按钮选项 | ESC 或 关闭 按钮结果 |
---|---|
OK |
OK |
OKCancel |
Cancel |
YesNo |
ESC 键盘快捷方式和“ 关闭 ”按钮已禁用。 用户必须按 “是 ”或 “否”。 |
YesNoCancel |
Cancel |
有关使用消息框的详细信息,请参阅MessageBox和 MessageBox 示例。