好吧 我把所有之前写的都删了,只为这一句话“所有变量切记小心在递归函数内部初始化”,包括:布尔,变量i,等等.至于为什么....递归就是调用自己,你初始化以后的变量,等再次调用的时候又回来了 bool bFind = false; private bool FindNode(TreeNodeCollection nodeColl, string szName, ref TreeNode node) { foreach (TreeNode sub in nodeColl) { //MessageB…