65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.95/5 (22投票s)

2004年5月15日

1分钟阅读

viewsIcon

211825

downloadIcon

3545

一个 C# 类,它使用 Dino Esposito 的 LocalCbtHook 组件,为任何 .NET MessageBox 添加一个“不再显示”复选框。

Sample Image - MessageBoxChk.gif

引言

每个开发人员都熟悉 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);

前两个参数描述了用于存储布尔变量的注册表项和值名称,该变量确定用户是否不想显示此消息框。第三个参数是默认返回值,如果未显示消息框,将立即返回该值。接下来是复选框的文本,然后是消息框文本本身、标题、按钮代码和图标代码。

© . All rights reserved.