Использовать событие Validated для устранения ошибки, отмеченной errorProvider?

Первый пост! Я новичок в С# и errorProvider. Я искал лучшие практики использования errorProvider. Я нашел следующий код:

void TextBox_Validating( object sender, CancelEventArgs e ) {
    TextBox textBox = sender as TextBox;

    bool valid = textBox.TabIndex == 1 || textBox.Text.Length > 0;

    if( !valid )
        m_ErrorProvider.SetError( textBox, "Error " + textBox.Name );

    e.Cancel = !valid;
}

private void TextBox_Validated(object sender, System.EventArgs e) {
    TextBox textBox = sender as TextBox;
    m_ErrorProvider.SetError(textBox, "");
}

Вместо обработки события Validated я просто удалял ошибку на пути к событию Validating и позволял снова установить ошибку в этом обработчике событий следующим образом:

void TextBox_Validating( object sender, CancelEventArgs e ) {
    TextBox textBox = sender as TextBox;

    m_ErrorProvider.SetError(textBox, "");

    bool valid = textBox.TabIndex == 1 || textBox.Text.Length > 0;

    if( !valid )
        m_ErrorProvider.SetError( textBox, "Error " + textBox.Name );

    e.Cancel = !valid;
}

Моя проверка более сложная, чем эта, где у меня есть несколько мест, где она будет очищена. И мой опыт — встроенный код, где эта техника распространена.

Является ли обработка события Validated лучшей практикой? Спасибо.


person bgrupczy    schedule 04.12.2015    source источник
comment
Ничего страшного. Вы можете взглянуть на этот ответ. Также вы можете рассмотреть возможность реализации IDataErrorInfo для классов вашей модели. Также вам может быть полезна эта статья msdn: Расширение Windows Forms с помощью пользовательской библиотеки компонентов проверки.   -  person Reza Aghaei    schedule 04.12.2015