本帖最后由 wangyu065 于 2009-10-26 15:40:55 编辑

解决方案 »

  1.   


    foreach(treenode top in tree.nodes)
    {
        foreach(treenode subnode in top.nodes)
        {
           这里就是了
        }
    }
      

  2.   

    如果a和b以及下面的一些子节点check了,只要他们的子节点
    举个例
      

  3.   

    采用递归,那么无论几层,都能获得它的子节点【之前判断子节点的字节点为null】
      

  4.   

    假如a,a1,a3和b,b1,b2都选中了,我就只需要取a1,a3和b1,b2就可以了
      

  5.   


     //意思是,如果父节点被勾选了,遍历的结果只要子节点?
            List<TreeNode> nodelist = new List<TreeNode>();        private void searchnodes(TreeNode node)
            {
                foreach (TreeNode top in node.Nodes)
                {
                    if (没有勾选)
                    {
                        nodelist..Add(top);
                    }
                    else if(勾选,但是top.Nodes.Count==0)
                    {
                        nodelist.Add(top);
                    }
                    foreach (TreeNode subnode in top.Nodes)
                    {
                        searchnodes(subnode);
                    }
                }
            }
    使用时
    ……
            nodelist.Clear();
            foreach(TreeNode top in tree.Nodes)
            {
                   searchnodes(top);
            }
    ……