Treeview:添加新根节点后的自定义顺序

时间:2013-07-18 15:18:49

标签: c# winforms visual-studio-2010

我有10个不同的根节点,我不想添加,直到我需要它们(它们不存在,只要我不会调用它们)。所以我用了

treeView1.Nodes.Insert(0, Node);
treeView1.Nodes.Insert(1, Node);
treeView1.Nodes.Insert(2, Node);

等等。如果我要添加Node0,Node1和Node2一切正常。但是如果我尝试改变Node2,Node1,Node0这样的顺序,我会遇到问题 - Node0工作正常,但是没有Node1,但是有两个Node2或Node1和Node2切换位置。是否有可能跳过某个位置,将来使用它?要检查节点索引,我使用了这个代码,附加到按钮:

MessageBox.Show(treeView1.SelectedNode.Index.ToString());

1 个答案:

答案 0 :(得分:2)

我认为您使用错误的方法添加节点。

对于初始创建,您只需使用treeView1.Nodes.Add(node)即可。 当您确实想要在给定索引处插入节点时,请在您想要的位置找出它,然后在适当的索引处使用Insert

您的节点交换位置的原因是因为在上面的示例中插入是没有意义的。将位置2中的节点插入没有节点的列表中将改为将其添加到位置0。

编辑:添加代码示例。

        TreeNode node1 = new TreeNode("Node 1");

        view.Nodes.Add(new TreeNode("Node 0"));
        view.Nodes.Add(new TreeNode("Node 2"));
        view.Nodes.Add(new TreeNode("Node 4"));

        // Point 1

        view.Nodes.Insert(1, node1);

        // Point 2

        view.Nodes.Insert(3, new TreeNode("Node 3"));

        // Point 3

在第1点,您的节点集合将是
节点0
节点2
节点4

在第2点,您的节点集合将是
节点0
节点1
节点2
节点4

在第3点,你的节点集合将是
节点0
节点1
节点2
节点3
节点4