0

C# Win Form アプリケーションで Dev Components Advance TreeView コントロールを使用しています。ツリー ビュー ノードには、ノードを選択/選択解除するためのチェック ボックスがあります。ツリー ビューでノードの複数選択を有効にしました。任意のノードの「チェック/チェック解除」で選択したすべてのノードを取得したい。選択したノードのコレクションを返すツリービューの「SelectedNodes」プロパティを使用してみましたが、最後に選択したノードなど、常に「1」ノードを返す方法がありました。

更新 問題は、子ノードの選択にあります。すべての親ノードを複数選択すると、正しいカウントが返されますが、子ノードの場合、カウントは常に 1 です。

4

1 に答える 1

0

ここにルートノードを渡すだけで、単純な再帰関数を使用できます。再帰が必要ない場合は、選択したノード リストをチェック/チェック解除のイベント ハンドラーにフックします。

     static public List<HierarchyNode> GetCheckedNodes(HierarchyNode node)
    {
        var nodes = new List<HierarchyNode>();

        foreach (HierarchyNode childNode in node.Nodes)
        {
            nodes.AddRange(GetCheckedNodes(childNode));
        }

        if (node.Checked)
        {
            nodes.Add(node);
        }

        return nodes;
    }
于 2015-11-26T09:40:28.913 に答える