Как обнаружить событие закрытия MMC 3.0 SnapIn, написанное на C#
Люди, я создаю программу SnapIn MMC3.0 с C#. Там у меня есть несколько узлов области видимости, и у меня есть FormViewDescription, где я использовал экземпляры C# UserControl для отображения некоторых данных. И я намереваюсь, чтобы пользователь увидел и обновил эти данные в UserControl, и в этом UserControl есть кнопка Сохранить, которую пользователь должен нажать в конце своего редактирования, и я сохраню это изменение.
Теперь проблема в том, что если после внесения некоторых изменений пользователь закрывает окно SnapIn, все его изменения исчезают:(Мне нужно запретить пользователю перед закрытием этого окна диалоговое окно "Сохранить перед выходом" (или что-то в этом роде - вы знаете, стандартная функция любой программы-редактора.) Но не может найти способ сделать это. Какие-либо предложения для меня?
Буду признателен за многое!
1 ответ
По совпадению, я также только что создал MMC во многом так же, как вы описали выше, но после долгих поисков (и разочарований) я не смог найти никакого способа отменить событие закрытия. Я рекомендую изменить ваш подход, как описано ниже.
Прежде всего посмотрим, как большинство MMC, которые уже есть в Windows, справляются с изменением настроек. Обычно, если вы хотите изменить настройку, вы выбираете элемент в ListView и щелкаете правой кнопкой мыши "Свойства", чтобы вызвать форму настроек и внести в нее изменения.
Открытие формы дает разработчику возможность контролировать полный жизненный цикл формы и обеспечивать сохранение настроек до ее закрытия.
Итак, мой совет:
- Создайте свой FormView
- Добавьте любую необходимую информацию о статусе
- Добавьте кнопку "Изменить настройки" в FormView
- Создайте форму Windows с помощью кнопки "Сохранить / Отмена" + все элементы управления вводом данных.
- Запустите вашу форму с помощью myForm.ShowDialog(), когда вы нажмете кнопку "Изменить настройки".
- Обработайте нажатие кнопки "Сохранить / Отмена" и отмените соответственно, если данные загрязнены
Надеюсь, это поможет. Удачи!