在C#中寻找一个优雅的“不要再显示我这个对话”对话框

时间:2010-11-25 05:40:07

标签: c# dialog showdialog

我一直在寻找一个带有复选框的对话框,“在C#中再次给我看这个对话框”。

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

该对话框应该与本机MessageBox.Show类似,但是使用新的属性值(bool值)返回给调用者。

感谢。

3 个答案:

答案 0 :(得分:7)

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

alt text

不幸的是,从C#开始,您需要进行一些互操作才能访问它。如果您只想让高级TaskDialogs定位到Vista / Windows 7,请使用http://code.msdn.microsoft.com/WindowsAPICodePack中的WindowsAPICodePack,它可以为您处理互操作复杂性。

如果你需要支持XP,那么有一个很好的包装器支持Vista / 7上的原生TaskDialogs,其中包含一个WinForms后备XP: http://www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

如果您的基础结构是持久化用户配置文件,则可以简单地创建类似于messagebox类的类。但是,您无法从messagebox派生。