Question

I've been looking for a dialog with a checkbox "Don's show me this dialog again" in C#.

I googled and search a lot, but I just could not find an elegant solution.

The dialog should work as similar as the native MessageBox.Show, but with a new property value (bool value) return to the caller.

Thanks.

Was it helpful?

Solution

Vista and Windows 7 applications can use the new TaskDialog features which extend the standard MessageBoxes to support a checkbox at the bottom (along with all sorts of other goodies such as Command Links, custom button text, footers etc).

alt text

Unfortunately from C# you need to do some interop to access this. If you just want the advanced TaskDialogs to target Vista/Windows 7, use the WindowsAPICodePack from http://code.msdn.microsoft.com/WindowsAPICodePack which can handle the interop complexity for you.

If you need to support XP, there is an excellent wrapper that supports the native TaskDialogs on Vista/7 with a WinForms fallback for XP here: http://www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx

OTHER TIPS

Why don't you create your own. It is a very simple one. Just derive from System.Windows.Forms.Form class and mimic it like the one you want.

I don't feel there will be a readymade solution as such. For implementing "Do not show me again", you need to persist the information outside the dailog and also create a user profile.

If your infrastructure of persisting the user profile is there, you can simple create a class similar to the messagebox class. You can not derive from messagebox however.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top