Visual Basic 中学校 > VB.NET サンプル > Windows.Forms.TreeView >
ノードを選択する
1.文字を指定して選択する例
以下の例ではすべてのノードの中から「スキピオ」と表示されているノードを選択する。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Node As TreeNode
For Each Node In GetAllNodes(TreeView1.Nodes)
If Node.Text = "スキピオ" Then
TreeView1.SelectedNode = Node
TreeView1.Focus() 'フォーカスがないと反転して表示されない。
Exit For
End If
NextEnd 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については別掲 子ノード以下の全ノードを取得する を参照。
以下の例では子ノードの中で「カラカラ」と表示されているノードを選択する。孫以下のノードは無視される。
Dim Node As TreeNode 'ParentNodeは親ノードを示すTreeNode型の変数。
For Each Node In ParentNode.Nodes
If Node.Text = "カラカラ" Then
TreeView1.SelectedNode = Node
TreeView1.Focus() 'フォーカスがないと反転して表示されない。
Exit For
End If
Next
2.位置を指定して選択する例
以下の例では1番目のルートノードの2番目の子ノードの1番目の子ノードを選択する。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Node As TreeNode
'▼1番目のルートノードの2番目の子ノードの1番目の子ノードを選択する
Node = GetNodeFromPosition(TreeView1.Nodes, 0, 1, 0)
End Sub
TreeView1.SelectedNode = Node
TreeView1.Focus() 'フォーカスがないと反転して表示されない。'■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 TreeNodeDim i As Integer
Dim Node As TreeNodeNode = Nodes(Indexes(0))
For i = 1 To Indexes.Length - 1
Node = Node.Nodes(Indexes(i))
NextReturn Node
End Function
メモ:GetNodeFromPositionについては別掲 位置を指定してノードを取得する を参照。
以下の例では2番目の子ノードを選択する。
'ParentNodeは親ノードを示すTreeNode型の変数。
TreeView1.SelectedNode = ParentNode.Nodes(1)
TreeView1.Focus() 'フォーカスがないと反転して表示されない。