2011-07-05 106 views
3

當我試圖將節點從一個樹視圖複製到另一個樹視圖時,出現一個奇怪的錯誤:「無法在多個位置添加或插入項目'node1',必須先將其刪除從其當前位置或克隆它 參數名稱:節點「 搜索了一段時間後,我找不到任何解決方案。我在VB.NET嘗試這樣做,有同樣的錯誤 代碼示例:將節點添加到樹視圖的問題

TreeNode node1 = new TreeNode("node1"); 
node1.Name = "node1"; 
treeView1.Nodes.Add(node1); 
TreeNode nd = treeView1.Nodes[0]; 
treeView2.Nodes.Add(nd); 

是否有這方面的任何解決方案?


謝謝大家!這現在起作用了!

+0

你試圖在同一水平將節點添加到收藏你又指在同一個節點,使一個新的樹節點實例因此錯誤後兩次添加相同的節點 – Devjosh

+0

您提供的代碼不會產生任何錯誤。 –

回答

3

是,使用深層副本

TreeNode nd = (TreeNode)treeView1.Nodes[0].Clone(); 

更改您的代碼此

TreeNode node1 = new TreeNode("node1"); 
node1.Name = "node1"; 
treeView1.Nodes.Add(node1); 
TreeNode nd = (TreeNode)treeView1.Nodes[0].Clone(); // clone the object 
treeView2.Nodes.Add(nd); 
0

在這裏:

TreeNode nd = treeView1.Nodes[0]; 

你分配點NODE1到第二參考。

當您稍後將nd添加到另一個TreeView時,您會收到錯誤,因爲node1已經綁定到另一個TreeView。

如果你真的需要這樣做,你應該複製/關閉節點,而不是簡單地引用它,因爲你現在正在做。

0

您正試圖在同一節點添加到2個不同的樹視圖

TreeNode nd = treeView1.Nodes[0]; //make nd reference treeView1.Nodes[0] 
treeView2.Nodes.Add(nd);// add treeView1.Nodes[0] into treeView2 
相關問題