我有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());
答案 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