У меня есть базовый класс, который у меня наследуется на моих форумах. Возможно ли выполнить код из базовой формы, прежде чем я буду выполнять код в унаследованных формах? У меня есть чек, чтобы проверить, хотят ли они закрыть базовый класс, и я не хочу ничего выполнять, пока они не скажут «да» во всплывающую форму. Как я могу это сделать?Закрытие формы
ответ
Чтобы получить точное поведение, которое я хотел, я добавил два события в мое закрытие. Один из них сразу после проверки и второй после выполнения кода. Затем я заменил событие FormClosing в классе Inherited для использования обоих событий. Этот подход дал мне больше свободы, чем просто назвать mybase.OnFormClosing
Вместо обработки события в вашем подклассе переопределите метод OnFormClosing. Затем вы можете позволить реализовать базовый класс по своему усмотрению. Тогда делай свои вещи.
Protected Overrides Sub OnFormClosing(e As System.Windows.Forms.FormClosingEventArgs)
MyBase.OnFormClosing(e)
'my stuff
End Sub
Предполагая, что вы уже установив свойство e.Cancel к истинным или ложным в случае FormClosing в вашем базовом классе, вы просто должны проверить значение e.Cancel в наследуемой форме:
Protected Overrides Sub OnFormClosing(e As FormClosingEventArgs)
MyBase.OnFormClosing(e)
If Not e.Cancel Then
MessageBox.Show("Doing Stuff")
End If
End Sub
Оба этих решения заставляют мою программу дважды проходить событие закрытия. Это нормально? –
@DotNetProgrammer Да, он запустит базовый код закрытия, а затем ваш унаследованный код закрытия базы. Отправьте свой код, если вам нужна помощь, потому что мы не можем видеть, как выглядит ваш код. – LarsTech
Это почти то же самое, что и ваш код. Он выполнит MessageBox, а затем снова запустит сообщение. Наверное, я могу добавить логическое значение, чтобы остановить его во второй раз, когда он проходит через базовый класс после унаследованного класса –
- 1. Закрытие формы для заполнения формы?
- 2. Закрытие формы возвращает ошибку
- 3. Закрытие три формы кнопки
- 4. закрытие формы пароля C#
- 5. Закрытие формы, открывшейся ShowDialog()
- 6. Закрытие формы MdiChild
- 7. Закрытие формы по объекту
- 8. Закрытие тега формы автоматически
- 9. Закрытие формы в VB.NET
- 10. Закрытие формы от загрузчика
- 11. Запретить закрытие формы
- 12. Закрытие формы при открытии другой формы
- 13. Закрытие одной формы из другой формы?
- 14. Закрытие формы пользовательской формы VBA превосходит
- 15. Закрытие элемента формы слишком рано
- 16. Закрытие формы запуска убивает приложение
- 17. Доступ запрещен Закрытие формы C#
- 18. Закрытие формы на другой форме?
- 19. Отображения/Закрытие формы в МОФ
- 20. Закрытие формы из другого потока
- 21. Как остановить закрытие формы JFrame?
- 22. Закрытие страницы перед отправкой формы
- 23. Закрытие формы с запущенными задачами
- 24. Закрытие формы после (async) жду
- 25. C# - Закрытие диалогового окна просмотра вызывает закрытие формы
- 26. Закрытие модальной формы (ов) снаружи и открытие новой модальной формы
- 27. Открытие новой формы и закрытие формы, которая называлась
- 28. Закрытие новой формы закрывает окно сообщения другой формы
- 29. Закрытие фоновой формы из формы переднего плана в C# wpf
- 30. Как закрыть закрытие приложения из другой формы?
Оба этих решения заставляют мою программу проходить событие закрытия дважды. Это нормально? –