下面是动态的TreeView。
我想实现的是菜单选择框父项打勾后它下面的子项选择框全部为打勾。
请高手指点。           
            List<string> list = new List<string>();
            TreeView tv = new TreeView();
            tv.Size = new System.Drawing.Size(150, 300);
            for (int i = 0; i < 4; i++)
            {
                TreeNode td = new TreeNode();
                td.Text = "Node" + i.ToString();
                td.Name = "Node" + i.ToString();
                for (int j = 0; j < 4; j++)
                {
                    TreeNode subnode = new TreeNode();
                    subnode.Name = "SubNode-" + i.ToString() + "-" + j.ToString();
                    subnode.Text = "SubNode-" + i.ToString() + "-" + j.ToString();
                    td.Nodes.Add(subnode);
                }
                tv.Nodes.Add(td);
            }
            tv.CheckBoxes = true;
            this.Controls.Add(tv);

解决方案 »

  1.   

    ........
        tv.CheckBoxes = true; 
        this.Controls.Add(tv);
        tv.AfterCheck+=new TreeViewEventHandler(tv_AfterCheck);
     private void tv_AfterCheck(object sender, TreeViewEventArgs e)
            {
                if (e.Node.Checked)
                    checkallnode(e.Node.Nodes);        }        private void checkallnode(TreeNodeCollection tds)
            {
                foreach (TreeNode td in tds)
                {
                    td.Checked = true;
                    if (td.Nodes.Count > 0) checkallnode(td.Nodes);
                }
            }