-2

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

1 回答 1

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

于 2013-07-18T15:32:53.510 回答