日期:2014-05-20  浏览次数:21001 次

c#winform中如何获取treeview的所有项数目。在线等,满意给高分。
c#winform中如何获取treeview中所有项的数目,包括子节点。并且如何获取当前点击项的顺序值(从上往下的顺序,包括子节点)?

------解决方案--------------------
写个遍历吧,用一个int变量累加得到顺序
------解决方案--------------------

//所有节点的个数
int count = treeView1.GetNodeCount(true);
//当前节点序号
void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    int sum = getIndex(e.Node, 0);
    MessageBox.Show(sum.ToString());
}

int getIndex(TreeNode node, int sum)
{
    if (node.PrevNode == null)
    {
        if (node.Parent == null)
        {
            return sum + 1;
        }
        else
        {
            return getIndex(node.Parent, sum + 1);
        }
    }
    else
    {
        sum += node.PrevNode.GetNodeCount(true) + 1;
        return getIndex(node.PrevNode, sum);
    }
}