你说的是不是给每个节点都付值呀 要是用循环就可以呀   vector

解决方案 »

  1.   

    public void Node(TreeNodeCollection AALnd, string ndID)
        {        foreach (TreeNode nd in AALnd)
            {
                if (nd.Value == ndID)
                {
                    nd.Expanded = true;
                    if (nd.Parent != null)
                    {
                        nd.Parent.Expanded = true;
                    }
                    else
                    {
                        nd.Expanded = true;
                    }
                }
            }
        }
    我是这样的,但当是子节点时展开父节点就不行了
      

  2.   

    //创建根节点
        public void BindCategoryTreeVew(TreeView treeView, bool isExpanded, string sSelectedData)
        {
            //将获取的数据转换为 一个DataTable
            DataTable dt=GetCategorys().Tables[0];
            treeView.Nodes.Clear();//清空 树的所有节点
            //获取与排序顺序中的筛选器以及指定的状态相匹配的所有System.Data.DataRow 数组
            DataRow []rowlist=dt.Select("ParentID='-1'");
            if (rowlist.Length <= 0) return;
            //创建跟节点
            TreeNode rootNode = new TreeNode();
            //设置根节点的属性
            rootNode.Text = rowlist[0]["Desn"].ToString();
            //设置根节点的值
            rootNode.Text = rowlist[0]["CategoryID"].ToString();
            rootNode.Expanded = isExpanded;
            rootNode.Selected = true;
            //添加跟节点
            CategoryView.Nodes.Add(rootNode);
            CreateChildNode(rootNode, dt, isExpanded, sSelectedData);     }======================
      private void CreateChildNode(TreeNode parentNode, DataTable dt, bool isExpanded, string sSelecedData)
        {
            //选择数据,添加排序表达市
            DataRow [] rowList = dt.Select("ParentID=" + Convert.ToInt32(parentNode.Value));
            foreach (DataRow row in rowList)
            {
                //创建一个新的节点了
                TreeNode node = new TreeNode();
                node.Text = row["Desn"].ToString();
                node.Value = row["CategoryID"].ToString();
                node.Expanded = isExpanded;
                if (node.Value == sSelecedData)
                {
                    node.Selected = true;
                }
                parentNode.ChildNodes.Add(node);
                //递归调用,创建其他节点
                CreateChildNode(node,dt,isExpanded,sSelecedData);
            }
        }