有谁知道是否有一种方法来获取具有ErrorProvider图标处于 Activity 状态的控件的列表。 IE。验证失败的任何控件。我试图避免循环窗体中的所有控件。

我想显示某种消息,指示表单上有多少错误。由于我的表单包含选项卡,因此我试图使用户知道不 Activity 的选项卡上可能存在错误,因此他们需要检查所有选项卡。

谢谢

巴里

最佳答案

这属于“你怎么不知道”类别。是您的代码正在调用ErrorProvider.SetError(),您应该可以轻松跟踪仍在 Activity 的错误数量。这是一个小 helper 类,使用其SetError()方法更新ErrorProvider。其Count属性返回 Activity 错误的数量:

private class ErrorTracker {
  private HashSet<Control> mErrors = new HashSet<Control>();
  private ErrorProvider mProvider;

  public ErrorTracker(ErrorProvider provider) {
    mProvider = provider;
  }
  public void SetError(Control ctl, string text) {
    if (string.IsNullOrEmpty(text)) mErrors.Remove(ctl);
    else if (!mErrors.Contains(ctl)) mErrors.Add(ctl);
    mProvider.SetError(ctl, text);
  }
  public int Count { get { return mErrors.Count; } }
}

关于c# - C#WinForms ErrorProvider控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2682136/

10-13 03:13