private void Show() { if (commonDialog != null) { var fi = typeof(SWF.CommonDialog).GetField("form", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); f = (SWF.Form)fi.GetValue(commonDialog); if (commonDialog is SWF.FileDialog) { var methodInfo = commonDialog.GetType().GetMethod("RunDialog", System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); methodInfo.Invoke(commonDialog, new object [] { f.Handle }); } } else if (threadExceptionDialog != null) { f = threadExceptionDialog; } f.Show(); }