【发布时间】:2018-12-08 15:26:51
【问题描述】:
我有一个用户控件CambioContraseña 和两个名为txtAlfanumerico 的其他自定义用户控件的文本框。这个 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在我使用的Form中不起作用,图标没有直接出现。
我对@987654329@ 做了一个断点,结果如下:
【问题讨论】:
-
也许文本框不是您的用户控件的直接子级,它们托管在面板中。设置断点并检查
FaltaCampos中发生的情况。 -
@RezaAghaei 已根据您的建议更新帖子
标签: c# winforms textbox user-controls errorprovider