帮助请求在一个简单的窗体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'。
变化
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