0

ツリービューにノードを追加する再帰プログラムがありますが、これを行うためにボトムアップアプローチが必要です。

私はこれまでこれを行いましたが、機能していません

private void TreeviewCountCheckedNodes(TreeNodeCollection treeNodeCollection)
{
    TreeNode node = treeNodeCollection[0];
    int countchecked = 0;
    if (node != null)
    {
        foreach (TreeNode childnode in node.Nodes)
        {
            if (childnode.Nodes.Count == 0 && childnode.Checked)
            {
                countchecked++;
            }
            else if (childnode.Nodes.Count > 0)
            {
                TreeviewCountCheckedNodes(childnode.Nodes);
            }
        }
    }
}
4

2 に答える 2

1

このコードをここに投稿して、誰かを助けるかもしれないと考えています。

このコードは、ツリー ビュー内のすべてのチェック ノードの数を取得します。

int checkedNodesCount = 0;

private int GetCheckedNodesCount(TreeNodeCollection treeNodeCollection)
    {

        TreeNode node = treeNodeCollection[0];


        if (node != null)
        {
            if (node.Nodes.Count > 0)
            {
                foreach (TreeNode childnode in node.Nodes)
                {
                    if (childnode.Nodes.Count == 0 && childnode.Checked)
                    {
                        checkedNodesCount++;
                    }
                    else if (childnode.Nodes.Count > 0)
                    {
                        checkedNodesCount += GetCheckedNodesCount(childnode.Nodes);
                    }
                }
            }
            else
            {
                if (node.Checked)
                {
                    checkedNodesCount++;
                }
            }
        }
        return checkedNodesCount;
    }
于 2015-08-21T09:07:39.873 に答える
1
private int TreeviewCountCheckedNodes(TreeNodeCollection treeNodeCollection)
        {
            int countchecked = 0;
            if (treeNodeCollection != null)
            {
                foreach (TreeNode node in treeNodeCollection)
                {
                    if (node.Nodes.Count == 0 && node.Checked)
                    {
                        countchecked++;
                    }
                    else if (node.Nodes.Count > 0)
                    {
                        countchecked += TreeviewCountCheckedNodes(node.Nodes);
                    }
                }
            }
            return countchecked;
        }

電話:

int coount = TreeviewCountCheckedNodes(treeView.Nodes);
于 2012-11-30T14:08:40.017 に答える