我一直在寻找一个带有复选框的对话框,“在C#中再次给我看这个对话框”。
我用谷歌搜索并搜索了很多,但我找不到一个优雅的解决方案。
该对话框应该与本机MessageBox.Show类似,但是使用新的属性值(bool值)返回给调用者。
感谢。
答案 0 :(得分:7)
Vista和Windows 7应用程序可以使用新的TaskDialog功能扩展标准MessageBoxes以支持底部的复选框(以及各种其他好东西,如命令链接,自定义按钮文本,页脚等)。
不幸的是,从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
派生。