2011-04-01 176 views
0

我有一個樹視圖已經填充(在vb.net中)並且想要將所有節點或所有樹爲此事移動到根節點包含所有將TReeView節點移動到根節點(包含所有節點)Vb.net

我有這樣的:

Root1 
---Water 
---Dirt 
-----Fire 
-----Stone 
---UFOs 
Root2 
---Acid 
-----H20 
-----TNT 

,並把所有到一個「Megaroot」

MEgaRoot 
---Root1 
------Water 
------Dirt 
--------Fire 
--------Stone 
------UFOs 
---Root2 
------Acid 
--------H20 
--------TNT 

也許是容易的,但它是那些日子之一,當我HAVO沒有想法如何解決這個問題。

謝謝大家的響應

問題就迎刃而解了:

Dim Counter As Integer = trvItems.Nodes.Count 
Dim oldRoot As TreeNode 
Dim newRoot = New TreeNode("Megaroot") 
For i As Integer = 0 To Counter - 1 
    oldRoot = trvItems.Nodes(0) 
    trvItems.Nodes.Remove(oldRoot) 
    newRoot.Nodes.Add(oldRoot) 
Next i 
newRoot.Expand() 

回答

1

您需要從樹中刪除舊的根,所以你可以給它一個新的母公司。創建一個新的根,然後將舊的添加到它。像這樣:

Dim oldRoot = TreeView1.Nodes(0) 
    TreeView1.Nodes.Remove(oldRoot) 
    Dim newRoot = New TreeNode("Megaroot") 
    newRoot.Nodes.Add(oldRoot) 
    TreeView1.Nodes.Insert(0, newRoot) 
    newRoot.Expand() '-- or ExpandAll() 
+0

這隻會爲Root1添加「子樹」,如果我有Root2,Root3,Rootn,它們都保留在Megaroot之外。也許我必須爲我遇到的每個Rootn做一些循環? – Dany 2011-04-01 23:36:11

+0

不要無可奈何,我向你展示瞭如何做到這一點,你可以從那裏拿起球。從電視中刪除,添加到新的根目錄。 – 2011-04-01 23:51:29