You want a fully improved TaskDialog .
Available here with usage description here
TaskDialog allows you to specify in more detail the buttons and icons that show, and - Microsoft's own solution for your .Net problem.
- update answer @pst comment
If you need to support Winows XP or earlier, there is a very stable and reliable codeproject library that wraps and emulates the taskdialog class for Microsoft when you use an earlier version of Windows and use your own version of MS if you are in Vista or later.
I relied on this codeproject library about 2 years ago, and then it was stable, so there should not be any security problems at all.
source share