//
for(int i=0;i<oTv.Nodes.Count;i++)
{
     if(oTv.Nodes[i].ID==sID)//找到sID
     {
oTn=oTv.Nodes[i];
break;
     }
}

解决方案 »

  1.   

    foreach(TreeNode tn in treeView1.nodes)
    {
          search(tn);   
    }
    int result = 0;private void search(TreeNode tn)
    {
       if(tn.nodes.count != 0)
        {
           search(tn)
    } else
         { if (cn.checked) result +=1;}
      

  2.   

    for(int i=0;i<oTv.Nodes.Count;i++)
    {
    if(oTv.Nodes[i].ID==sID)//找到sID的节点
    {
    oTn=oTv.Nodes[i];
    break;
    }
    }
      

  3.   

    result 就是所有的被选中的节点,你自己改变条件就可以了
      

  4.   

    private void search(TreeNode tn)
    {   if (tn.checked) result += 1;
       if(tn.nodes.count != 0)
        {
           search(tn)
    } else
         { if (cn.checked) result +=1;}}不好意思,忘掉了每一级的根节点的状态判断,呵呵,修改如上
      

  5.   

    asam2183谢谢你的回复,我就是你那样写的代码,虽然不行,但感谢你的参予!
    brightheroes(太菜了,请原谅) :你的代码只有第一段可用,但我已经受益匪浅,感谢!