2012-04-22 62 views
0

幾天以來,我一直在處理與TreeViews有關的問題,其網址爲VB.net。 我有了一個TreeView與是這樣的層次結構中的應用:在樹狀視圖中更改級別節點的位置

 
Node 1 
    |--- Node 2 
      |--- Node 3 
       |--- Node 4 

即每個節點只有一個孩子,整個樹形只有一個根。 我試圖完成的是通過使用「上移」和「下移」按鈕來切換這些節點的位置。假設我想要移動「節點2」,它需要「節點1」的位置,「節點1」會移動到「節點2」的位置。

我已經嘗試了一些東西,但永遠不能讓它工作,所以我所做的只是改變這些節點(文本,工具提示文字,...)的屬性。 我希望能夠通過實際移動節點來做到這一點,不僅要讓它看起來「正確」,還要學習關於此控件的更多內容,因爲對我而言,處理有點混亂(我是新開發的.Net)

在此先感謝。

+0

感謝您的幫助。 無論如何,我最終被迫使用另一個控制,這意味着我的問題已經沒有意義了。 因爲我是新來的,你能否告訴我們是否有錯(如果可能的話)接受這兩個答案? – Deltint 2012-07-20 00:16:28

回答

0

爲了使節點2作爲節點1的父:

TreeView1.Nodes("Node1").Parent = TreeView1.Nodes("Node2") 
0

寫一些代碼給你一個方向(未經測試):

Enum Directions 
    Up 
    Down 
End Enum 

Public Sub MoveNode(ByVal nodeToBeMoved As Windows.Forms.TreeNode, ByVal direction As Directions) 
    Dim parent As TreeNode = nodeToBeMoved.Parent 
    If parent Is Nothing AndAlso 
     direction = Directions.Up Then 
     MsgBox("Node cannot be moved up!") 
     Exit Sub 
    End If 

    Dim child As TreeNode = nodeToBeMoved.FirstNode 
    If child Is Nothing AndAlso 
     direction = Directions.Down Then 
     MsgBox("Node cannot be moved down!") 
     Exit Sub 
    End If 

    Dim childFirstNode As TreeNode = child.FirstNode 

    nodeToBeMoved.Nodes.Clear() 
    If direction = Directions.Up Then 
     parent.Nodes.Clear() 
     nodeToBeMoved.Nodes.Add(parent) 
     parent.Nodes.Add(child) 
    Else 
     child.Nodes.Clear() 
     child.Nodes.Add(nodeToBeMoved) 
     nodeToBeMoved.Nodes.Add(childFirstNode) 
    End If 
End Sub