几天后,我一直在处理 VB.net 上的TreeViews问题。 我有一个具有树形视图的应用程序,其层次结构如下:
Node 1 |--- Node 2 |--- Node 3 |--- Node 4
意味着每个节点只有一个子节点,整个树视图只有一个根节点。 我想要完成的是,通过使用“上移”和“下移”按钮,切换这些节点的位置。假设我想将'节点2'向上移动,它将占用'节点1'并且'节点1'将转到'节点2'位置。
我尝试过一些东西,但是永远无法让它工作,所以我所做的只是更改这些节点的属性(Text,ToolTipText,...)。 我希望能够通过实际移动节点来实现这一点,不仅是为了使它看起来“正确”,而且还要学习更多有关此控件的内容,因为对我来说,处理它有点令人困惑。 (我是.Net开发的新手)
提前致谢。
答案 0 :(得分:0)
使节点2成为节点1的父节点:
TreeView1.Nodes("Node1").Parent = TreeView1.Nodes("Node2")
答案 1 :(得分: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