获取treeView选中CheckBox的所有子节点
就是我选取了那些子节点前的CheckBox就我要这些子节点
怎么做到?高手,给点示例代码?

解决方案 »

  1.   

    只要被选中的都获取我用foreach (TreeNode note in treeView1.SelectedNode.Nodes)
                    {
                         if(note.Checked)
                         {  
                                //这里得到的都是父节点 !  可是我要的是子节点
                            }
                    }
      

  2.   

    private void button1_Click(object sender, EventArgs e)
            {
                List<TreeNode> listNodes = new List<TreeNode>();
                foreach(TreeNode node in treeViewMenu.Nodes)
                {
                    FindCheckNode(node, listNodes);
                }
            }        private void FindCheckNode(TreeNode node, List<TreeNode> listNodes)
            {
                if (node.Checked)
                {
                    listNodes.Add(node);
                }
                foreach (TreeNode childnode in node.Nodes)
                {
                    FindCheckNode(childnode, listNodes);
                }
            }
      

  3.   

    如果你选中的节点hasnodes foreach遍历子节点
    应该用递归,要不是不知道节点有多少层没有用过treeview 见笑
      

  4.   

     TreeNode nodeP = new TreeNode();
            if (nodeP.Checked)
            {
                if (nodeP.ChildNodes.Count > 0)
                {
                    for (int i = 0; i < nodeP.ChildNodes.Count; i++)
                    {
                        //获取节点ID
                        string strID = nodeP.ChildNodes[i].Value;
                        //获取节点值
                        string strText = nodeP.ChildNodes[i].Text.ToString();
                    }
                }
            }