как добавить новый узел между двумя узлами и всеми дочерними узлами, присоединенными к новому узлу - PullRequest
0 голосов
/ 23 апреля 2020

мое древовидное представление, как показано ниже:

enter image description here

я хочу добавить новый узел из текстового поля в древовидное представление при использовании метода вставки для добавить новый узел, узел добавлен, но не между двумя узлами.

Я хочу, чтобы добавить 5 между 1 и 1.1 коллекцией, например:

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

(у дерева всегда есть один root) мой код:

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);
        }

1 Ответ

0 голосов
/ 24 апреля 2020

решается с помощью clone () Может быть, другие будут использовать его: 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);
...