0

ここ数日、私はVB.netの TreeViews に関する問題に取り組んできました。次のような階層を持つツリービューを持つアプリケーションがあります。

ノード 1
     |--- ノード 2
          |--- ノード 3
               |--- ノード 4

つまり、すべてのノードには子しかなく、ツリービュー全体にはルートしかありません。私が達成しようとしているのは、「上へ移動」および「下へ移動」ボタンを使用して、これらのノードの位置を切り替えることです。「ノード 2」を上に移動したいとします。「ノード 1」の位置に移動し、「ノード 1」は「ノード 2」の位置に移動します。

いくつか試してみましたが、うまくいきませんでした。そのため、これらのノードのプロパティ (Text、ToolTipText など) のみを変更しました。ノードを実際に動かしてこれを実行できるようにしたいと考えています。これは、「正しく」見えるようにするためだけでなく、このコントロールについてさらにいくつかのことを学ぶためでもあります。 (私は.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 に答える