6

我一直在寻找一个对话框,在 C# 中带有“不要再次向我显示此对话框”复选框。

我用谷歌搜索了很多,但我找不到一个优雅的解决方案。

该对话框的工作方式应与本机 MessageBox.Show 类似,但带有一个新的属性值(布尔值)返回给调用者。

谢谢。

4

3 回答 3

8

Vista 和 Windows 7 应用程序可以使用新的 TaskDialog 功能,这些功能扩展了标准 MessageBox 以支持底部的复选框(以及各种其他好东西,例如命令链接、自定义按钮文本、页脚等)。

替代文字

不幸的是,从 C# 开始,您需要进行一些互操作才能访问它。如果您只希望高级任务对话框以 Vista/Windows 7 为目标,请使用http://code.msdn.microsoft.com/WindowsAPICodePack中的 WindowsAPICodePack,它可以为您处理互操作复杂性。

如果您需要支持 XP,这里有一个出色的包装器,它支持 Vista/7 上的本机 TaskDialogs,并在此处为 XP 提供 WinForms 后备:http: //www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx

于 2010-11-25T07:31:28.613 回答
3

你为什么不创建你自己的。这是一个非常简单的。只需从System.Windows.Forms.Form类派生并像您想要的那样模仿它。

于 2010-11-25T05:48:07.037 回答
0

我认为不会有现成的解决方案。为了实现“不再显示我”,您需要在 dailog 之外保留信息并创建用户配置文件。

如果您的持久化用户配置文件的基础设施在那里,您可以简单地创建一个类似于该类的messagebox类。但是,您不能从中得出messagebox

于 2010-11-25T05:50:15.150 回答