我有递归程序来添加节点t treeview但我希望有自下而上的方法来做到这一点。
到目前为止我已经这样做了,但它无法正常工作
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);
}
}
}
}
答案 0 :(得分: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);
答案 1 :(得分:0)
我在这里发布这段代码,认为它可以帮助某人。
代码检索树视图中所有校验节点的计数。
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;
}