Делать все проверки сразу - PullRequest
2 голосов
/ 23 сентября 2010

При попытке проверить элементы управления в форме окна, я понимаю, что .validated () для каждого элемента управления срабатывает, когда фокус теряется. Вместо этого я хотел бы проверить только когда кнопка нажата внизу, как бы я это сделал?

Ответы [ 3 ]

1 голос
/ 23 сентября 2010

Когда вы устанавливаете для свойства reasonValidation значение true, событие .Validating (и более поздние: .Validated) возникает, когда вы покидаете элемент управления.Установите для него значение false или просто не обрабатывайте событие.

Чтобы выполнить проверку на уровне формы, обработайте событие .Closing (лучше, чем нажатие кнопки) и напишите свою логику там.Нет смысла вызывать обработчики событий Validating.

1 голос
/ 23 сентября 2010

Установите AutoValidate на AutoValidate.Disable, и в событии нажатия кнопки вызовите метод ValidateChildren () (он будет запускать все события «проверки / проверки»). MSDN

0 голосов
/ 23 сентября 2010

Вы можете проверить все условия проверки в Button_Click

/// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void button1_Click(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(txtUserName.Text))
        {
            MessageBox.Show("Please enter user Name");
        }
        else if(condition)
        {
         }
         ...........
    }
...