2016-09-14 5 views
-1

У меня есть базовый класс, который у меня наследуется на моих форумах. Возможно ли выполнить код из базовой формы, прежде чем я буду выполнять код в унаследованных формах? У меня есть чек, чтобы проверить, хотят ли они закрыть базовый класс, и я не хочу ничего выполнять, пока они не скажут «да» во всплывающую форму. Как я могу это сделать?Закрытие формы

ответ

0

Чтобы получить точное поведение, которое я хотел, я добавил два события в мое закрытие. Один из них сразу после проверки и второй после выполнения кода. Затем я заменил событие FormClosing в классе Inherited для использования обоих событий. Этот подход дал мне больше свободы, чем просто назвать mybase.OnFormClosing

1

Вместо обработки события в вашем подклассе переопределите метод OnFormClosing. Затем вы можете позволить реализовать базовый класс по своему усмотрению. Тогда делай свои вещи.

Protected Overrides Sub OnFormClosing(e As System.Windows.Forms.FormClosingEventArgs) 
    MyBase.OnFormClosing(e) 
    'my stuff 
End Sub 
+0

Оба этих решения заставляют мою программу проходить событие закрытия дважды. Это нормально? –

2

Предполагая, что вы уже установив свойство 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 
+0

Оба этих решения заставляют мою программу дважды проходить событие закрытия. Это нормально? –

+0

@DotNetProgrammer Да, он запустит базовый код закрытия, а затем ваш унаследованный код закрытия базы. Отправьте свой код, если вам нужна помощь, потому что мы не можем видеть, как выглядит ваш код. – LarsTech

+0

Это почти то же самое, что и ваш код. Он выполнит MessageBox, а затем снова запустит сообщение. Наверное, я могу добавить логическое значение, чтобы остановить его во второй раз, когда он проходит через базовый класс после унаследованного класса –

Смежные вопросы