帮助请求在一个简单的窗体Visual c#上控制孩子

本文关键字:Visual 窗体 孩子 控制 简单 一个 请求 帮助 | 更新日期: 2023-09-27 18:13:49

大家好,我是编程和学习c#的新手。我只是个初学者。

我有一个带有GroupBox控件的表单,在GroupBox中有四个TextBox控件。还有一个button

我想通过单击button来测试TextBox是否为空。

这是我的代码,但它不能正常工作。

如果有人有时间,可以帮我一下吗?

private bool IsThereDataInControl(Control control) {
  bool isControlEmpty = true;
  foreach(Control c in control.Controls) {
    if (c is TextBox) {
      if (!String.IsNullOrEmpty(((TextBox) c).Text)) {
        isControlEmpty = false;
      }
    }
    if (c.HasChildren) {
      IsThereDataInControl(c);
    }
  }
  return isControlEmpty;
}
private void button1_Click(object sender, EventArgs e) {
  bool validate = IsThereDataInControl(this);
  MessageBox.Show(validate.ToString());
}

当文本框中有文本时,messagebox显示'True'。

帮助请求在一个简单的窗体Visual c#上控制孩子

变化

if (c.HasChildren) {
  IsThereDataInControl(c);
}

if (c.HasChildren && !IsThereDataInControl(c)) {
    isControlEmpty = false;
}

我不确定它是否有效,因为我没有访问c#编译器的权限。

如果控件在代码中有子控件,则调用IsThereDataInControl(c);,但对结果不做任何操作。

如果您想要验证所有子节点,您可以递归地执行:

  foreach(Control c in control.Controls) {
    if (c is TextBox) {
        if (!String.IsNullOrEmpty(((TextBox) c).Text)) {
            return true;
        }
    }
    else if (c.HasChildren) {
        if (IsThereDataInControl(c)) {
            return true;
        }
    }
}
return false;

代码可能需要稍微修改一下,我现在没有c# IDE