个写递归遍历树节点,从中找到指定节点并返回。 可无论怎么写,即使找到指定节点,return后仍然继续执行递归,最终返回空值。求大侠指导正确写法。
/// <summary>
/// 依据Id遍历treeList并返回指定Id的节点
/// </summary>
/// <param name="nodes">TreeList控件Nodes</param>
/// <param name="id">要返回节点的Id</param>
/// <returns>返回的指定节点</returns>
private TreeListNode Bianli(TreeListNodes nodes, string id)
{
foreach (TreeListNode c in nodes)
{
MessageBox.Show(c.GetValue("Id").ToString());
if (c.GetValue("Id").ToString() == id)
{
return c;
}
if (c.Nodes.Count > 0)
{
//return (Bianli(c.Nodes, id));
Bianli(c.Nodes, id);
//以上两种写法都不能正确执行
}
}
return null;
}