我拉了一个treeview,并设置该treeview的CheckBoxs属性为true.
然后建了以下几项:   +□主节一
       □次节点一
       □次节点二
       □次节点三
    +□主节二
       □次节点一
       □次节点二
       □次节点三我想实现以下效果:
    当我选中主节一的时候,对应该主节点下面的子节点也自动选中。谢谢。

解决方案 »

  1.   

    http://www.cnblogs.com/eaglet/archive/2008/09/26/1299430.html
      

  2.   

    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
            {
                foreach (TreeNode tn in e.Node.Nodes)
                {
                    tn.Checked = e.Node.Checked;
                }
            }
      

  3.   

    treeview的AfterCheck事件里遍历一下就可以了.如2楼我发的代码
      

  4.   

    注册AfterCheck事件
    注意一下,这里不需要递归,因为你对子节点设置Checked=true之后,仍然会触发AfterCheck事件 private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
            {
                if(e.Node.Checked)
                {
                    foreach (TreeNode node in e.Node.Nodes)
                    {
                        node.Checked = true;
                    }
                }
            }
      

  5.   


            private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
            {
                CheckNodes(e.Node);
            }        private void CheckNodes(TreeNode node)
            {
                foreach (TreeNode childNode in node.Nodes)
                {
                    childNode.Checked = node.Checked;
                    CheckNodes(childNode);
                }
            }