2011-01-06 70 views
0
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。

任何想法如何插入节点,而无需使用插入

或有效利用插入与treeviewsorter?

+0

...并正确格式化你的代码 – erikkallen 2011-01-06 11:36:53

回答

0

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

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

但是,在特定情况下,你要删除节点和插入它放回原来的位置,和你说的时候,居然就应该这样做是行不通的。

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

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