好吧 我把所有之前写的都删了,只为这一句话“所有变量切记小心在递归函数内部初始化”,包括:布尔,变量i,等等。至于为什么。。。。递归就是调用自己,你初始化以后的变量,等再次调用的时候又回来了
bool bFind = false;
private bool FindNode(TreeNodeCollection nodeColl, string szName, ref TreeNode node)
{ foreach (TreeNode sub in nodeColl)
{
//MessageBox.Show(sub.Text );
if (sub.Text == szName)
{
node = sub;
bFind = true;
}
FindNode(sub.Nodes, szName, ref node);
//else
//{ return FindNode(sub.Nodes, szName, ref node); }
} return bFind ;
// MessageBox.Show(bFind .ToString ());
}
绿标记都是错误的,在CSDN上有个哥们回答了,但是他在内部初始化的布尔,问问题的估计是在下面弄好了,这种问题一般自己搞定了,是很少有人说出来的