public void EachTreeA(TreeView tree, string str)//函数作用是采用递归显示符合条件的页面被选中
     {
         foreach (TreeNode tn in tree.Nodes)
         {
             if (tn.ChildNodes != null)
             {
                 if (tn.Value == str)
                 {
                     tn.Checked = true;
                 }
                 EachTreeNodeA(tn, str);
             }
         }
     }
     public void EachTreeNodeA(TreeNode tn, string str)//函数作用是采用递归显示符合条件的页面被选中
     {
         foreach (TreeNode tnc in tn.ChildNodes)
         {
             if (tnc.ChildNodes != null)
             {
                 if (tnc.Value== str)
                 {
                     tnc.Checked = true;
                 }
                 EachTreeNodeA(tnc, str);
             }
         }
     }

解决方案 »

  1.   

      private void CheckAllChildNodes(TreeNode treeNode, string str)
            {
                foreach (TreeNode node in treeNode.Nodes)
                {
                    if(node.Text == str)
                    {
                        
                        treeView1.SelectedNode = node;
                        
                    }
                     
                    if (node.Nodes.Count > 0)
                    {
                        this.CheckAllChildNodes(node, str);
                    }
                }
            }  private void button1_Click(object sender, EventArgs e)
            {
                TreeNode node = treeView1.TopNode;//得到TreeView的根结点,注意根结点只有一个
                //每次搜寻到根结点
                while (node.PrevNode != null)
                    node = node.PrevNode;
                //TraversNodes(node, "节点1");//遍历根结点
                CheckAllChildNodes(node, "节点21");        }
      

  2.   

    看看这个http://www.cnblogs.com/sqshine/archive/2008/12/29/1364236.html
      

  3.   


    while (node.PrevNode != null) 这个语句有时候提示未将对象引用设置为对象实例,什么原因?
      

  4.   

    TreeNode node = treeView1.TopNode
    node已经是根节点了,你还去获取node.PrevNode
      

  5.   

    foreach(treenode  n in treeview1.nodes)
    {
    CheckAllChildNodes(node, "节点21");
    }
      

  6.   

       public void CheckAllChildNodes(TreeView treeView1, TreeNode node, string str)
            {            if (node.Text == str)
                    treeView1.SelectedNode = node;
                foreach (TreeNode chileNode in node.Nodes)
                {
                    this.CheckAllChildNodes(treeView1, chileNode, str);
                }
            }