C# 请在一个简单的表单Visual C上提供儿童控制方面的帮助#
大家好,我是编程和学习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) {
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;