我有一个UserControl CambioContraseña
,其中有两个名为txtAlfanumerico
的其他自定义UserControl文本框。这个UserContol非常简单,但是我想添加一个 ErrorProvider 来检查字段是否为空。这是UserControl的屏幕截图:
这是一个代码:
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
中做了一个断点,结果是: