/* * Методы должны быть перегружены - скопировать здесь и вставить в диалог наследник - заменить virtual на override ОБЯЗАТЕЛЬНО ! */ #region public static void Show(Object AttachedObject) /// <summary> /// Вызывает диалог редактирования объекта. /// Данный метод придется вручную переписать. /// </summary> /// <param name="AttachedObject"></param> public static void Show(Object AttachedObject) { EditObjectDialog dlg = GetDialogByObject(AttachedObject); if (dlg == null) { dlg = new EditObjectDialog(AttachedObject); RegisterDialog(dlg); } dlg.Show(); }
/// <summary> /// При закрытии диалога удаляем его из коллекции /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void dlg_FormClosed(object sender, FormClosedEventArgs e) { EditObjectDialog dlg = sender as EditObjectDialog; if (dlg == null) { return; } // if (_OpenedDialogs.Contains(dlg)) { _OpenedDialogs.Remove(dlg); } }
/* * Работа с диалогом */ #region protected static void RegisterDialog(Object AttachedObject) /// <summary> /// Регистрирует диалог в общей куче, чтобы потом его открыть /// </summary> /// <param name="AttachedObject"></param> protected static void RegisterDialog(EditObjectDialog dlg) { _OpenedDialogs.Add(dlg); dlg.FormClosed += new FormClosedEventHandler(dlg_FormClosed); }