TreeViewコントロールに表示されているノード数を取得するには、TreeNodeクラスのGetNodeCountメソッドを使用します。
サブツリーのノード数まで取得したい場合は、GetTreeNodeメソッドの引数にTrueを指定します。
また、選択されているノードの子ノード数を崇徳したい場合はSelectedNodeプロパティのGetNodeCountメソッドを使用します。
使用方法は、TreeViewクラスのGetNodeCountメソッドと同じです。
下記は、ノード数を取得する例です。
[全ノード数の取得]ボタンがクリックされると全ノード数を取得し、[選択ノードが持つ子ノード数を取得]ボタンがクリックされると選択されたノードの子ノード数を取得して表示します。
VBの例
' フォームロード時の処理
Private Sub Form9_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'親ノード
Dim rootNode As New TreeNode("ルート")
'子ノード
Dim childNode1 As New TreeNode("子ノード1")
Dim childNode2 As New TreeNode("子ノード2")
'★★★子ノード1のチェックをONにする★★★
childNode1.Checked = True
'孫ノード
Dim grandChildNode1 As New TreeNode("孫ノード1")
Dim grandChildNode2 As New TreeNode("孫ノード2")
Dim grandChildNode3 As New TreeNode("孫ノード3")
'親ノードをTreeViewに追加
TreeView1.Nodes.Add(rootNode)
'子ノードを親ノードに追加
rootNode.Nodes.Add(childNode1)
rootNode.Nodes.Add(childNode2)
'孫ノードを子ノードに追加
childNode2.Nodes.Add(grandChildNode3)
childNode1.Nodes.Add(grandChildNode1)
childNode1.Nodes.Add(grandChildNode2)
'全ノードを展開する
TreeView1.ExpandAll()
End Sub
' [全ノード数の取得]ボタンクリック時の処理
Private Sub btnGetAllNodeCount_Click(sender As System.Object, e As System.EventArgs) Handles btnGetAllNodeCount.Click
Dim iCnt As Integer
'★★★TreeViewに表示されている全ノードを取得★★★
iCnt = TreeView1.GetNodeCount(True)
MessageBox.Show("ノード数は" & iCnt.ToString() & "です")
End Sub
' [選択ノードが持つ子ノード数を取得]ボタンクリック時の処理
Private Sub btnGetSelectNodeCount_Click(sender As System.Object, e As System.EventArgs) Handles btnGetSelectNodeCount.Click
If TreeView1.SelectedNode IsNot Nothing Then
Dim iCnt As Integer
'★★★選択されたノードの子ノード数を取得★★★
iCnt = TreeView1.SelectedNode.GetNodeCount(True)
MessageBox.Show("ノード数は" & iCnt.ToString() & "です")
End If
End Sub
C#の例
// フォームロード時の処理
private void Form9_Load(object sender, EventArgs e)
{
//親ノード
TreeNode rootNode = new TreeNode("ルート");
//子ノード
TreeNode childNode1 = new TreeNode("子ノード1");
TreeNode childNode2 = new TreeNode("子ノード2");
//孫ノード
TreeNode grandChildNode1 = new TreeNode("孫ノード1");
TreeNode grandChildNode2 = new TreeNode("孫ノード2");
TreeNode grandChildNode3 = new TreeNode("孫ノード3");
// 親ノードをTreeViewに追加
treeView1.Nodes.Add(rootNode);
// 子ノードを親ノードに追加
rootNode.Nodes.Add(childNode1);
rootNode.Nodes.Add(childNode2);
// 孫ノードを子ノードに追加
childNode2.Nodes.Add(grandChildNode3);
childNode1.Nodes.Add(grandChildNode1);
childNode1.Nodes.Add(grandChildNode2);
// 全ノードを展開する
treeView1.ExpandAll();
}
// [全ノード数の取得]ボタンクリック時の処理
private void btnGetAllNodeCount_Click(object sender, EventArgs e)
{
int iCnt;
// ★★★TreeViewに表示されている全ノードを取得★★★
iCnt = treeView1.GetNodeCount(true);
MessageBox.Show("ノード数は" + iCnt.ToString() + "です");
}
// [選択ノードが持つ子ノード数を取得]ボタンクリック時の処理
private void btnGetSelectNodeCount_Click(object sender, EventArgs e)
{
if (treeView1.SelectedNode != null)
{
int iCnt;
// ★★★選択されたノードの子ノード数を取得★★★
iCnt = treeView1.SelectedNode.GetNodeCount(true);
MessageBox.Show("ノード数は" + iCnt.ToString() + "です");
}
}
Please follow and like us:

コメント