Я планирую переопределить OnFormClosing (из System.Windows.Forms.Form), чтобы выполнить проверку ввода пользователя в мой диалог. Если проверка не удалась, то я установлю для свойства Cancel FormClosingEventArgs значение true:
protected override void OnFormClosing(FormClosingEventArgs e)
{
if (DialogResult == DialogResult.OK)
{
if (!IsDialogInputValid())
{
e.Cancel = true;
return; // Is not calling the base class OnFormClosing okay here?
}
}
base.OnFormClosing(e);
}
Мой вопрос: Должен ли я вызывать OnFormClosing базового класса, даже когда я отменяю закрытие (то есть должен ли я удалить ранний возврат над)?
В настоящее время я считаю, что я не должен называть это, поскольку делегаты, прикрепленные к событию FormClosing, не ожидают, что их вызовут, когда сам диалог решил, что он не закрывается. С другой стороны, я нервничаю, что, возможно, базовый класс OnFormClosing делает другие необходимые вещи.
К вашему сведению, я новичок в Winforms, поэтому любые советы о том, как я должен выполнять проверку ( если это не лучший подход) приветствуется.
Ссылка по теме: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onformclosing.aspx