private void ShowDialog(int id, BaseObject parent = null, BaseObject child = null) { try { BaseObject baseObject = (BaseObject)parentType.GetConstructor(new Type[] { typeof(int), typeof(BaseObject), typeof(BaseObject), typeof(bool) }).Invoke(new object[] { id, parent, child, true }); if (baseObject.ErrCode != ErrCode.ErrOK) { MessageBox.Show("Ошибка загрузки данных: " + baseObject.ErrMessage, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } BaseObjectDialog baseDialog = (BaseObjectDialog)baseObject.DialogType.GetConstructor(new Type[] { typeof(BaseObject) }).Invoke(new object[] { baseObject }); baseDialog.ShowDialog(this); if (baseDialog.DialogResult == DialogResult.OK) { if (execute != null) { RetrieveForm(baseObject.Id); //Здесь надо включить обновление формы } } } catch (Exception ex) { MessageBox.Show("Ошибка открытия формы: " + ex.Message, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
protected DialogResult ShowDialog(BaseObject baseObject) { try { BaseObjectDialog baseDialog = (BaseObjectDialog)baseObject.DialogType.GetConstructor(new Type[] { typeof(BaseObject) }).Invoke(new object[] { baseObject }); return(baseDialog.ShowDialog(this)); } catch (Exception ex) { MessageBox.Show("Ошибка открытия формы: " + ex.Message, "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); return(DialogResult.Abort); } }