Treeview插入属性问题

时间:2011-01-06 11:27:55

标签: c# .net

TreeNode[] nodes = this.treeview.Nodes.Find(node.Text, true);
      if (nodes.Length > 0)
      {
        int i = nodes[0].Index;
        if (nodes.Length > 0)
          this.treeview.Nodes.Remove(nodes[0]);
        this.treeview.Nodes.Insert(i, nodes[0]);
      }

我试过这段代码,

但节点节点[0]未插入特定索引。

而是在最后添加。

但是我使用treeviewsorter。

任何想法如何插入节点而不使用插入

或使用insert有效地使用treeviewsorter ??

1 个答案:

答案 0 :(得分:0)

如果您已将TreeViewNodeSorter属性设置为自定义比较器,则会使用该比较器自动对TreeView个节点进行排序。

因此,您不能在不同的位置插入节点,因为位置是使用比较器决定的。

但是,在您的特定情况下,您正在移除一个节点并将其重新插入其原始位置,并且您认为它实际上应该无效。

这,(我猜)可能是由于以下几个原因:

  1. 你的比较器实现是错误的,或者说它使用依赖于排序本身的属性(如Node.Index
  2. 您使用Find()获得的节点(假设只有一个......)属于低于root的级别,但您尝试将其从根节点中删除并添加到该级别...
  3. 其他原因,我们需要更多代码......