【问题标题】:ErrorProvider in an User control in C#C# 用户控件中的 ErrorProvider
【发布时间】: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中不起作用,图标没有直接出现。

我对@9​​87654329@ 做了一个断点,结果如下:

【问题讨论】:

  • 也许文本框不是您的用户控件的直接子级,它们托管在面板中。设置断点并检查 FaltaCampos 中发生的情况。
  • @RezaAghaei 已根据您的建议更新帖子

标签: c# winforms textbox user-controls errorprovider


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多