, переопределяя OnFormClosing формы для проверки

Я планирую переопределить 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

5
задан Matt Smith 17 February 2011 в 22:12
поделиться