[Tips][TreeView] ノード数を取得する

[ad code=2 align=left]
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() + "です");
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です