2011-05-20 65 views

回答

1

您可以通過克隆每個節點 這樣

private void CopyNodes(TreeView srcTree, TreeView dstTree) 
    { 
     var ar = System.Array.CreateInstance(typeof(TreeNode), srcTree.Nodes.Count); 
     treeView1.Nodes.CopyTo(ar, 0); 
     foreach (TreeNode item in ar) 
     { 
      dstTree.Nodes.Add((TreeNode)item.Clone()); 
     } 
    } 

做到這一點,調用函數

CopyNodes(treeView1, treeView2); 
+0

非常感謝它爲我工作.. :) – Tanya 2011-07-19 06:21:24

0

您需要複製節點。喜歡的東西:

otherTreeView.Nodes.Add(node.Text); 

取決於你想要什麼,你需要選擇一個overload of the Add method包括所有要複製(鍵,文本和/或圖像)的數據。只是不要直接添加節點,而是直接添加它們的組成部分。

+0

ya。我嘗試過,但它會拋出「指定的節點不能添加到屬於不同的控件的節點集合。」異常 – Tanya 2011-05-20 09:54:29

+0

只有在直接添加節點時纔會拋出此異常。重讀馬蒂歐的回答。 – 2011-05-20 16:07:02

0

你可以嘗試下面這個鏈接給出的方法,並序列化你的樹內容。然後基於序列化的內容構建一個新的樹視圖。我知道這是一個冗長的方法,但保證將所有分層數據正確地添加到第二個樹視圖中。

Save nodes from a treeview

0

您可以只複製爲TreeView1實例,並添加額外的節點。 同樣的東西,如下所示

TreeView2 = TreeView1; 
TreeView2.Nodes.Add(new TreeNode()); 
相關問題