ヘッダー

VB.NET2002対応 VB.NET2003対応 VB2005対応

 

指定した位置のノードを取得する

参照:TreeViewの基礎用語

 

以下の例では全ノードの中から指定した位置にあるノードを取得する。

VB.NET2002対応 VB.NET2003対応 VB2005対応

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim Node As TreeNode

    '▼1番目のルートノードの3番目の子ノードを取得する
   
Node = GetNodeFromPosition(TreeView1.Nodes, 0, 2)
    MsgBox(Node.Text)

    '▼1番目のルートノードの2番目の子ノードの1番目の子ノードを取得する
   
Node = GetNodeFromPosition(TreeView1.Nodes, 0, 1, 0)
    MsgBox(Node.Text)

    '▼指定したノードの2番目の子ノードの1番目の子ノードを取得する
   
Dim ParentNode As TreeNode

    ParentNode = TreeView1.Nodes(0) 'ここでは最初のルートノードを指定するが何を指定しても良い。

    Node = GetNodeFromPosition(ParentNode.Nodes, 1, 0)
    MsgBox(Node.Text)

End Sub

'■GetNodeFromPosition
''' <summary>位置を指定して全ノードの中から特定のノードを取得する</summary>
''' <param name="Nodes">トップレベルのNodes。例:TreeView1.Nodes</param>
''' <returns>指定されたTreeNode</returns>
''' <remarks>存在しない位置を指定した場合の動作は未定義</remarks>
Private Function GetNodeFromPosition(ByVal Nodes As TreeNodeCollection, ByVal ParamArray Indexes() As Integer) As TreeNode

    Dim i As Integer
   
Dim Node As TreeNode

    Node = Nodes(Indexes(0))

    For i = 1 To Indexes.Length - 1
        Node = Node.Nodes(Indexes(i))
   
Next

    Return Node

End Function