立即进行所有验证

时间:2010-09-23 09:14:37

标签: c# vb.net winforms validation controls

当尝试验证窗体上的控件时,我意识到当焦点丢失时,每个控件的.validated()都会触发。相反,我只想在底部按下按钮时验证,我该怎么做?

3 个答案:

答案 0 :(得分:1)

当您将causeValidation属性设置为true时,当您离开控件时会触发.Validating(以及稍后:.Validated)事件。将其设置为false或只是不处理事件。

要进行表单级验证,请处理.Closing事件(优于Buttonclick)并在那里编写逻辑。调用Validating事件处理程序没有任何意义。

答案 1 :(得分:1)

将AutoValidate设置为AutoValidate.Disable并在按钮单击事件中调用ValidateChildren()方法(它将触发所有“验证/验证”事件)。 MSDN

答案 2 :(得分:0)

您可以检查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)
        {
         }
         ...........
    }