当尝试验证窗体上的控件时,我意识到当焦点丢失时,每个控件的.validated()都会触发。相反,我只想在底部按下按钮时验证,我该怎么做?
答案 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)
{
}
...........
}