现有如图所示的一个树,假如说目前已经获得到"海外图书"字符串,我如何遍历树节点才能得到它下面的子节点呢?("小说","读物"下面的曾子节点不取值)求大神赐教,在线等遍历treeview

解决方案 »

  1.   


    public string GetCaseSuperiorList(string strAyMc)
            {
                TreeNode TargetTreeNote = null;
                Stack<TreeNode> TreeNoteStack = new Stack<TreeNode>();
                foreach (TreeNode tn in objTarget.Nodes)
                {
                    TreeNoteStack.Push(tn);
                }
                while (TreeNoteStack.Count > 0)
                {
                    TreeNode TempTreeNote = TreeNoteStack.Pop();
                    if (TempTreeNote.Text == strAyMc)
                    {
                        TargetTreeNote = TempTreeNote;
                        break;
                    }
                    else
                    {
                        foreach (TreeNode tnChild in TempTreeNote.Nodes)
                        {
                            TreeNoteStack.Push(tnChild);
                        }
                    }
                }
                List<TreeNode> lsResult = new List<TreeNode>();
                Stack<TreeNode> CaseSuperiorListStack = new Stack<TreeNode>();
                CaseSuperiorListStack.Push(TargetTreeNote);
                lsResult.Add(TargetTreeNote);
                while (CaseSuperiorListStack.Count > 0)
                {
                    TreeNode TempTreeNote = CaseSuperiorListStack.Pop();
                    foreach (TreeNode tnChild in TempTreeNote.Nodes)
                    {
                        CaseSuperiorListStack.Push(tnChild);
                        lsResult.Add(tnChild);
                    }
                }
                string strResult = string.Empty;
                foreach (TreeNode tnChild in lsResult)
                {
                    strResult += "'" + tnChild.Text + "',";
                }
                return strResult.Substring(0, strResult.Length - 1);
            }这个方法是传进来节点名称,查找出下面所有节点的,我现在就是不想要曾子节点,只获取子节点
      

  2.   

    用我的代码找到你要的那个节点。然后它的Nodes属性就是你要的。
      

  3.   

          TreeNode nodes = tvType.SelectedNode;         foreach (TreeNode tn in nodes)
                    {
                  //tn就是"海外图书"下面的子节点
                    }