0
我知道我错过了一些基本的东西,但我仍然对递归感到陌生,并且很难知道要寻找什么。我用void递归方法做得很好,但是这个布尔值让我感动。递归布尔方法在TableLayoutPanel中的foreach控制
我需要检查我的TableLayoutPanel中的每个控件,看它是否是一个TextBox,然后看看它是否有文本。 (如果它确实返回true,如果所有文本框都为空,则返回false。)
这就是我开始的,我明白为什么它不起作用,但我无法弄清楚什么是解决方案将是。
private bool CheckNewRecord(Control Con)
{
foreach (Control C in Con.Controls)
{
if (C is TextBox && ((TextBox)C).Text != "")
{
return true;
}
else
{
return CheckNewRecord(C);
}
}
return false;
}
我认为正在发生的事情是它得到最后的控制,并认为它没有孩子,因为它跳过循环回踢虚假。
现在你只是检查所有的孩子的两倍,而OP的代码,一旦检查它们。 – Servy
@Servy:我不喜欢递归,所以我现在展示了一个不同的 –
就是这样!非常感谢,我想我现在明白了。我错过的一点是,如果它在任何时候都是真的,它就需要一直返回真实。我只是看不到如何去做。我觉得我尝试了这样的事情,但是我错误地宣布了虚拟布尔。无论如何,谢谢。 –