проверка элемента управления .net WinForms — как явно проверить все элементы управления

#c# #winforms #validation

#c# #winforms #проверка

Вопрос:

Если я создам простое приложение Winforms с кнопкой и текстовым полем и следующими обработчиками событий, я ожидал бы увидеть «False» при нажатии кнопки. Когда я нажимаю кнопку, она фактически выдает «True».

Почему форма допустима? Не похоже, что событие проверки выполняется вообще, хотя в документах говорится, что передача false приводит к безусловному выполнению проверки.

     private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show(this.Validate(false).ToString());
    }

    private void textBox1_Validating(object sender, CancelEventArgs e)
    {
        e.Cancel = true;
    }
  

Ответ №1:

Похоже, вы пытаетесь проверить дочерний элемент управления формы. Если это так, вам следует использовать один из ValidateChildren методов вместо Validate .