Как обнаружить событие закрытия MMC 3.0 SnapIn, написанное на C#

Люди, я создаю программу SnapIn MMC3.0 с C#. Там у меня есть несколько узлов области видимости, и у меня есть FormViewDescription, где я использовал экземпляры C# UserControl для отображения некоторых данных. И я намереваюсь, чтобы пользователь увидел и обновил эти данные в UserControl, и в этом UserControl есть кнопка Сохранить, которую пользователь должен нажать в конце своего редактирования, и я сохраню это изменение.

Теперь проблема в том, что если после внесения некоторых изменений пользователь закрывает окно SnapIn, все его изменения исчезают:(Мне нужно запретить пользователю перед закрытием этого окна диалоговое окно "Сохранить перед выходом" (или что-то в этом роде - вы знаете, стандартная функция любой программы-редактора.) Но не может найти способ сделать это. Какие-либо предложения для меня?

Буду признателен за многое!

1 ответ

По совпадению, я также только что создал MMC во многом так же, как вы описали выше, но после долгих поисков (и разочарований) я не смог найти никакого способа отменить событие закрытия. Я рекомендую изменить ваш подход, как описано ниже.

Прежде всего посмотрим, как большинство MMC, которые уже есть в Windows, справляются с изменением настроек. Обычно, если вы хотите изменить настройку, вы выбираете элемент в ListView и щелкаете правой кнопкой мыши "Свойства", чтобы вызвать форму настроек и внести в нее изменения.

Открытие формы дает разработчику возможность контролировать полный жизненный цикл формы и обеспечивать сохранение настроек до ее закрытия.

Итак, мой совет:

  1. Создайте свой FormView
  2. Добавьте любую необходимую информацию о статусе
  3. Добавьте кнопку "Изменить настройки" в FormView
  4. Создайте форму Windows с помощью кнопки "Сохранить / Отмена" + все элементы управления вводом данных.
  5. Запустите вашу форму с помощью myForm.ShowDialog(), когда вы нажмете кнопку "Изменить настройки".
  6. Обработайте нажатие кнопки "Сохранить / Отмена" и отмените соответственно, если данные загрязнены

Надеюсь, это поможет. Удачи!

Другие вопросы по тегам