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 ();
}