例外メッセージボックスをプログラムする方法
http://technet.microsoft.com/ja-jp/library/ms166340.aspx
Microsoft.ExceptionMessageBox.dllを使うところがミソ(僕の環境ではC:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.ExceptionMessageBox.dllにありました)。
static class ExceptionBox { public static void Show(IWin32Window owner, Exception ex) { ExceptionMessageBox box = new ExceptionMessageBox(ex); box.Buttons = ExceptionMessageBoxButtons.OK; box.Show(owner); } }