在第三层中加入节点
index指定第几个节点加
this.treeView.Nodes[0].Nodes[index].Nodes.Add(node1);this.treeView.Nodes[0].Nodes[index].Nodes.Remove(node1);

解决方案 »

  1.   


    public void addsub(TreeNodeCollection root, TreeNode leaf)
    {
    for(int i=0;i<root.Count;i++)
    {
    if(((TreeNodeinfo)root[i].Tag).taskid==((TreeNodeinfo)leaf.Tag).parentid)
    root[i].Nodes.Add (leaf);
    else if(root[i].GetNodeCount(true)>0 addsub(root[i].Nodes,leaf);
    }
    }给当前选定结点加子结点
    treeView1.SelectedNode.Nodes.Add(leaf);给当前选定结点加兄弟结点
    treeView1.SelectedNode.Parent.Nodes.Add(leaf);//不过这样有BUG。
      

  2.   

    //可以通过在上下文菜单中增加事件TreeView_AddNode()和 TreeView_DelAllNode()来实现在treeview上直接增删节点。
    protected void TreeView_AddNode(System.Object sender,System.EventArgs e)
    {

    TreeNode newNode = new TreeNode("新添模块");
    if (treeView1.SelectedNode == null)
    {
    // 没有选择节点的时候,添加到根节点
    treeView1.Nodes.Add(newNode);
    newNode.Text = "主模块";
    newNode.Tag  = "0";
    }
    else
    {
    // 在选择的当前节点下面添加一个新的子节点
    int i;
    if (treeView1.SelectedNode.Tag != null)
    {
    i = int.Parse(treeView1.SelectedNode.Tag.ToString());
    i++;
    treeView1.SelectedNode.Nodes.Add(newNode);
    newNode.Text = i.ToString()+"级子节点";
    newNode.Tag  = i.ToString();
    }
    else
    {
    i = 1;
    treeView1.SelectedNode.Nodes.Add(newNode);
    newNode.Text = i.ToString()+"级子节点";
    newNode.Tag  = i.ToString();
    }
    }
    }
    // 删除所有的节点
    protected void TreeView_DelAllNode(System.Object sender, System.EventArgs e)
    {
    treeView1.Nodes.Clear();
    }
      

  3.   

    定义右键菜单,提供删除
     删除节点,remove掉选中的节点
     refresh()
      

  4.   

    注意右键菜单只能定义在treeview上
     这个比较垃圾