вчера я сделал текстовое поле пользовательского со своим собственным валидатора:Что вызывает подтверждение в моем текстовом поле?
public partial class CustomTextBox : TextBox
{
ErrorProvider errorProvider;
public CustomTextBox()
{
InitializeComponent();
errorProvider = new ErrorProvider();
errorProvider.DataSource = this;
}
protected override void OnValidating(CancelEventArgs e)
{
base.OnValidating(e);
if (this.Text.Trim() == "")
{
errorProvider.SetError(this, "Required field");
e.Cancel = true;
return;
}
errorProvider.SetError(this, "");
}
}
Так я это на форме с помощью кнопки отмены и установите CausesValidation ложь на кнопку отмены. Я также устанавливаю для причинValidation в форме false. По какой-то причине, если я нажимаю кнопку «Отменить», мой пользовательский блок по-прежнему запускает событие onValidating. Любые идеи, что вызывает это? Я бы не хотел, чтобы что-то подтверждало мои текстовые поля, пока не нажмет кнопку отправки, которая попытается проверить все элементы управления в форме. Таким образом, пользователь не получает принудительного ввода данных в элемент управления, прежде чем переходить к другому. Звучит разумно? Это моя первая трещина в интерфейсе winforms.