【发布时间】:2011-04-16 04:01:31
【问题描述】:
当尝试验证 Windows 窗体上的控件时,我意识到每个控件的 .validated() 都会在焦点丢失时触发。相反,我只想在底部按下按钮时进行验证,我该怎么做?
【问题讨论】:
标签: c# vb.net winforms validation controls
当尝试验证 Windows 窗体上的控件时,我意识到每个控件的 .validated() 都会在焦点丢失时触发。相反,我只想在底部按下按钮时进行验证,我该怎么做?
【问题讨论】:
标签: c# vb.net winforms validation controls
当您将 CauseValidation 属性设置为 true 时,当您离开控件时会触发 .Validating(以及更高版本:.Validated)事件。将其设置为 false 或根本不处理该事件。
要进行表单级别的验证,请处理 .Closing 事件(比 Buttonclick 更好)并在那里编写您的逻辑。调用 Validating 事件处理程序毫无意义。
【讨论】:
将 AutoValidate 设置为 AutoValidate.Disable 并在按钮单击事件中调用 ValidateChildren() 方法(它将触发所有“验证/验证”事件)。 MSDN
【讨论】:
您可以查看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)
{
}
...........
}
【讨论】: