适用于 .NET MessageBox 的“不再显示”复选框






3.95/5 (22投票s)
2004年5月15日
1分钟阅读

211825

3545
一个 C# 类,它使用 Dino Esposito 的 LocalCbtHook 组件,为任何 .NET MessageBox 添加一个“不再显示”复选框。
引言
每个开发人员都熟悉 Windows MessageBox
,但有时我们需要稍微多一点功能。例如,如果我想在我的 MessageBox
底部添加一个“不再显示此警告”复选框,以便用户可以关闭某些警报,但我不想从头开始编写自己的对话框,涵盖所有可能的按钮组合呢?MsgBoxCheck
类正好可以做到这一点。
背景
本文和 MsgBoxCheck
类基于 Dino Esposito 在 2002 年 10 月和 11 月在 MSDN Magazine 的“Cutting Edge”栏目中发表的两篇文章。这些文章描述了在 C# 中使用 Windows 钩子,特别是如何钩住 Windows MessageBox
的创建和激活。
使用代码
使用 MsgBoxCheck
类就像使用 Windows MessageBox
一样简单。首先,在你的 C# 项目中添加对 MsgBoxCheck.dll 的引用。大多数人将按如下方式调用该类
MsgBoxCheck.MessageBox dlg = new MsgBoxCheck.MessageBox();
DialogResult dr =
dlg.Show(@"Software\PricklySoft\TestMsgBoxCheck",
"DontShowAgain",DialogResult.OK,
"Don't ask me this again",
"Now is the time for all good men to check this message box",
"Hello",
MessageBoxButtons.OK, MessageBoxIcon.Information);
前两个参数描述了用于存储布尔变量的注册表项和值名称,该变量确定用户是否不想显示此消息框。第三个参数是默认返回值,如果未显示消息框,将立即返回该值。接下来是复选框的文本,然后是消息框文本本身、标题、按钮代码和图标代码。