C#中的用户控件中的ErrorProvider

时间:2018-12-08 15:26:51

标签: c# winforms textbox user-controls errorprovider

我有一个UserControl CambioContraseña,其中有两个名为txtAlfanumerico的其他自定义UserControl文本框。这个UserContol非常简单,但是我想添加一个 ErrorProvider 来检查字段是否为空。这是UserControl的屏幕截图:

enter image description here

这是一个代码:

public bool FaltaCampos() {
  bool falta = false;
  foreach(txtAlfanumerico txt in Controls.OfType < txtAlfanumerico > ()) {
    if (txt.Text == "") {
      errorProviderFalta.SetError(txt, "Falta " + txt.Tag.ToString());
      falta = true;
    } else {
      errorProviderFalta.SetError(txt, "");
    }
  }
  return falta;
}

以及使用此UserControl的代码:

private void buttonConfirmar_Click(object sender, EventArgs e) {
  try {
    if (!cambioContraseña1.FaltaCampos()) {
      string actual = cambioContraseña1.TextBoxContraseñaActual();
      string nueva = cambioContraseña1.TextBoxNuevaContraseña();
      persona.CambiarContraseña(actual, nueva);
    }
  } catch (Exception ex) {
    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  }
}

但是我的问题是ErrorProvider不能在我使用的表单中工作,图标不会直接显示。

我在FaltaCampos中做了一个断点,结果是:

enter image description here

1 个答案:

答案 0 :(得分:0)

我可以解决我的问题,我认为在进行更改时我没有编译UserControl,所以没有出现ErrorProvider。

enter image description here