Search code examples
c#treeview

how to add new node between two node and all child attached to new node


my tree-view like as below:

enter image description here

i want add new node from text-box to tree-view when use insert method for add new node,node added but not between two node.

i want when add 5 between 1 and 1.1 collection such as:

root>>1>>5>>1.1>>1.1.1>>...

(always tree have one root) my code is:

if (tvData.SelectedNode != null)
        {
            TreeNode tnm = tvData.SelectedNode;
            TreeNode tnn = new TreeNode(textBox1.Text);
            tvData.Nodes.Remove(tnm);
            tvData.Nodes.Insert(tnm.Index, tnn);
            tvData.Nodes.Insert(0,tnm);
        }

Solution

  • solved by using clone() Maybe others will use it:X

    TreeNode ctn, clonetn;
    ctn = tvData.SelectedNode;
                    clonetn = (TreeNode)ctn.Clone();
                    tvData.Nodes.Remove(ctn);
                    TreeNode tempnode = new TreeNode(comboBoxrole.Text);
                    tvData.SelectedNode.Nodes.Add(tempnode);
                    tvData.SelectedNode = tempnode;
                    tvData.SelectedNode.Nodes.Insert(0, clonetn);