C# 通过错误提供程序禁用整个表单
在Windows窗体中,我有一些控件和一个UserControl。我在UserControl中有一个ErrorProvider。如果userControl中有错误,我想停止编辑表单中的所有控件。有办法吗C# 通过错误提供程序禁用整个表单,c#,.net,winforms,errorprovider,C#,.net,Winforms,Errorprovider,在Windows窗体中,我有一些控件和一个UserControl。我在UserControl中有一个ErrorProvider。如果userControl中有错误,我想停止编辑表单中的所有控件。有办法吗 我使用的是errorProvider.BindToCustomDataAndErrors(..)您可以防止用户通过验证事件将焦点移出UserControl。例如: protected override void OnValidating(CancelEventArgs e) {
我使用的是errorProvider.BindToCustomDataAndErrors(..)您可以防止用户通过验证事件将焦点移出UserControl。例如:
protected override void OnValidating(CancelEventArgs e) {
foreach (Control ctl in this.Controls) {
if (errorProvider1.GetError(ctl) != "") e.Cancel = true;
}
base.OnValidating(e);
}
像这样使用ErrorProvider.GetError()并不理想,尽管它可以工作。您可能希望保留自己的验证错误列表
errorProvider.GetError(control)
我使用的是errorProvider.BindToCustomDataAndErrors(..)。因此无法使用该方法,因为我没有调用ValidateChildren方法。因此,请继续验证未触发的事件。