Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 > Windows.Forms.TreeView >
ノードの数を取得する
1.子ノードの数を取得する
以下の例では子ノードの数を取得する。孫ノードは無視される。
Dim Count As Integer 'Nodeは対象のノードを表すTreeNode型の変数
Count = Node.Nodes.CountMsgBox(Count)
以下の例では2番目のルートノードの子ノードの数を取得する。孫ノードは無視される。
Dim Count As Integer Count = TreeView1.Nodes(1).Nodes.Count
MsgBox(Count)
2.子ノード以下の全ノードの数を取得する
以下の例ではツリービューに属するすべてのノードの数を取得する。これには子ノード以下の全ノードも含まれる。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Count As Integer
Count = GetAllNodes(TreeView1.Nodes).Count
MsgBox(Count)
End Sub
'■GetAllNodes
''' <summary>子ノードも含んだすべてのノードを取得する</summary>
''' <param name="Nodes">トップレベルのNodes。例:TreeView1.Nodes</param>
''' <returns>すべてのNodeを含んだコレクション</returns>
Private Function GetAllNodes(ByVal Nodes As TreeNodeCollection) As ArrayListDim Ar As New ArrayList
Dim Node As TreeNodeFor Each Node In Nodes
Ar.Add(Node)
If Node.GetNodeCount(False) > 0 Then
Ar.AddRange(GetAllNodes(Node.Nodes))
End If
NextReturn Ar
End Function
メモ:GetAllNodesについては別掲 子ノード以下の全ノードを取得する を参照。
以下の例では2番目のルートノードに属するすべてのノードの数を取得する。これには子ノード以下の全ノードも含まれる。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Count As Integer
Count = GetAllNodes(TreeView1.Nodes(1).Nodes).Count
MsgBox(Count)
End Sub
'■GetAllNodes
''' <summary>子ノードも含んだすべてのノードを取得する</summary>
''' <param name="Nodes">トップレベルのNodes。例:TreeView1.Nodes</param>
''' <returns>すべてのNodeを含んだコレクション</returns>
Private Function GetAllNodes(ByVal Nodes As TreeNodeCollection) As ArrayListDim Ar As New ArrayList
Dim Node As TreeNodeFor Each Node In Nodes
Ar.Add(Node)
If Node.GetNodeCount(False) > 0 Then
Ar.AddRange(GetAllNodes(Node.Nodes))
End If
NextReturn Ar
End Function
メモ:GetAllNodesについては別掲 子ノード以下の全ノードを取得する を参照。