0

几天来,我一直在处理VB.net上的 TreeViews 问题。我有一个应用程序,它有一个树视图,其层次结构如下:

节点 1
     |--- 节点 2
          |--- 节点 3
               |--- 节点 4

这意味着每个节点只有一个孩子,整个树视图只有一个根。我想要完成的是,通过使用“上移”和“下移”按钮来切换这些节点的位置。假设我想将“节点 2”向上移动,它将占据“节点 1”的位置,而“节点 1”将转到“节点 2”的位置。

我尝试了一些东西,但永远无法让它工作,所以我所做的只是更改这些节点的属性(文本、工具提示文本……)。我希望能够通过实际移动节点来做到这一点,不仅使它看起来“正确”,而且还可以了解有关此控件的更多信息,因为对我来说,处理它有点令人困惑(我是 .Net 开发的新手)

提前致谢。

4

2 回答 2

0

要将节点 2 作为节点 1 的父节点:

TreeView1.Nodes("Node1").Parent = TreeView1.Nodes("Node2")
于 2012-07-06T18:32:35.010 回答
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
于 2012-07-09T02:15:46.777 回答