如何將節點填充到newtreeview1中,這是另一個treeview1的實例?添加到「newtreeview1」中的節點應該在treeview1的第一個實例中可用?例如如何將TreeView的一個實例的節點添加到同一樹形視圖的另一個實例
;如果treeview1包含
|-- Node1
|-- Node2
| -- Node3
|-- Node4
newtreeview1也應該有上述節點。
如何將節點填充到newtreeview1中,這是另一個treeview1的實例?添加到「newtreeview1」中的節點應該在treeview1的第一個實例中可用?例如如何將TreeView的一個實例的節點添加到同一樹形視圖的另一個實例
;如果treeview1包含
|-- Node1
|-- Node2
| -- Node3
|-- Node4
newtreeview1也應該有上述節點。
您可以通過克隆每個節點 這樣
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);
您需要複製節點。喜歡的東西:
otherTreeView.Nodes.Add(node.Text);
取決於你想要什麼,你需要選擇一個overload of the Add method包括所有要複製(鍵,文本和/或圖像)的數據。只是不要直接添加節點,而是直接添加它們的組成部分。
ya。我嘗試過,但它會拋出「指定的節點不能添加到屬於不同的控件的節點集合。」異常 – Tanya 2011-05-20 09:54:29
只有在直接添加節點時纔會拋出此異常。重讀馬蒂歐的回答。 – 2011-05-20 16:07:02
你可以嘗試下面這個鏈接給出的方法,並序列化你的樹內容。然後基於序列化的內容構建一個新的樹視圖。我知道這是一個冗長的方法,但保證將所有分層數據正確地添加到第二個樹視圖中。
您可以只複製爲TreeView1實例,並添加額外的節點。 同樣的東西,如下所示
TreeView2 = TreeView1;
TreeView2.Nodes.Add(new TreeNode());
非常感謝它爲我工作.. :) – Tanya 2011-07-19 06:21:24