0

我有递归程序来添加节点 t 树视图,但我希望有自下而上的方法来做到这一点。

到目前为止我已经这样做了,但它不起作用

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
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 回答
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 回答