Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请在一个简单的表单Visual C上提供儿童控制方面的帮助#_C#_Forms_Controls - Fatal编程技术网

C# 请在一个简单的表单Visual C上提供儿童控制方面的帮助#

C# 请在一个简单的表单Visual C上提供儿童控制方面的帮助#,c#,forms,controls,C#,Forms,Controls,大家好,我是编程和学习C的新手。我只是个初学者 我有一个带有GroupBox控件的表单,在GroupBox中有四个TextBox控件。还有一个按钮 我想通过单击按钮来测试文本框是否为空 这是我的代码,但它不能正常工作 如果有时间,有人能帮我一下吗 private bool IsThereDataInControl(Control control) { bool isControlEmpty = true; foreach(Control c in control.Controls) {

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

我有一个带有
GroupBox
控件的表单,在
GroupBox
中有四个
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”

变化

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

我不确定它是否有效,因为我无法访问C#编译器atm


如果控件的代码中有子项,则调用
IstherateDataInControl(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。

哪里是
validatehereisdata()
?是否要使用
IstherateDataInControl()。是的,你说得对!我更改了方法的名称以使其更直观
  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;