2011-01-06 69 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. 其他原因,我們需要更多的代碼...