WPF:MessageBox系统消息框

文章目录

如何打开消息框

消息框 是一个对话框,用于快速显示信息,并选择性地允许用户做出决策。 MessageBox 类提供对消息框的访问权限。 以 模式方式显示消息框。 显示消息框的代码将暂停,直到用户使用关闭按钮或响应按钮关闭消息框。

下图演示了消息框的各个部分:

  • 带有标题的标题栏(1)
  • 关闭按钮(2)
  • 图标(3)
  • 向用户显示的消息(4)
  • 响应按钮 (5)

显示消息框

若要创建消息框,请使用该 MessageBox 类。 此方法 MessageBox.Show 允许你配置消息框文本、标题、图标和按钮,如以下代码所示:

csharp 复制代码
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);

MessageBox.Show 方法重载提供了配置消息框的方式。 这些选项包括:

  • 标题栏 标题
  • 消息 图标
  • 消息 文本
  • 响应 按钮

下面是使用消息框的更多示例。

显示警报。

csharp 复制代码
MessageBox.Show("Unable to save file, try again.");

前面的代码显示如下图所示的消息框:

最好使用消息框类提供的选项。 使用与之前相同的警报,设置更多选项,使其更具视觉吸引力:

csharp 复制代码
MessageBox.Show("Unable to save file, try again.", "Save error", MessageBoxButton.OK, MessageBoxImage.Error);

前面的代码显示如下图所示的消息框:

显示警告。

csharp 复制代码
MessageBox.Show("If you close the next window without saving, your changes will be lost.", "Configuration", MessageBoxButton.OK, MessageBoxImage.Warning);

前面的代码显示如下图所示的消息框:

向用户提问

csharp 复制代码
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
}

前面的代码显示如下图所示的消息框:

处理消息框响应

该方法 MessageBox.Show 显示消息框并返回结果。 结果指示用户如何关闭消息框:

csharp 复制代码
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;
}

当用户按下消息框底部的按钮时,将返回相应的 MessageBoxResult 按钮。 但是,如果用户按 ESC 键或按 "关闭 "按钮,则消息框的结果因按钮选项而异:

按钮选项 ESC 或 关闭 按钮结果
OK OK
OKCancel Cancel
YesNo ESC 键盘快捷方式和" 关闭 "按钮已禁用。 用户必须按 "是 "或 "否"。
YesNoCancel Cancel

有关使用消息框的详细信息,请参阅MessageBox和 MessageBox 示例

相关推荐
不可求~3 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
AC赳赳老秦6 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
谢慧琼6 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
weixin_431600447 小时前
前端数据埋点(1):一次点击如何变成一条埋点
前端·js·数据埋点
IT_陈寒7 小时前
Python线程池吞了异常还不告诉我,这谁顶得住啊
前端·人工智能·后端
计算机魔术师8 小时前
同样是AI辅助建造,为什么有的游戏三个月就烂尾了?
前端
用户921080262868 小时前
0. 做 Agent 产品,前端 AI 组件框架怎么选?
前端
拾年2759 小时前
React Hooks 进阶篇:useMemo / useCallback / useReducer / useImperativeHandle,用「算账 +
前端·javascript·react.js
Jackson__9 小时前
面试官:如何在老项目中使用新框架,并实现通信?
前端·javascript·面试
拾年2759 小时前
React Hooks 保姆级教程:把组件想象成失忆的打工人,4 个 Hook 带你原地起飞
前端·javascript·react.js