把一个treeview的checkboxs属性设为true使其节点都变成checkbox之后,想实现使某一个节点选中后其子节点都自动默认选中该怎么做呢?大家帮忙,谢谢拉!!

解决方案 »

  1.   

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

  2.   

    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
            {
                foreach (System.Windows.Forms.TreeNode node in e.Node.Nodes)
                {
                    node.Checked = true;
                }
            }
      

  3.   

    <script language ="javascript" type="text/javascript">
        function client_OnTreeNodeChecked()
        {
            var obj = window.event.srcElement;
            var treeNodeFound = false;
            var checkedState;
            if (obj.tagName == "INPUT" && obj.type == "checkbox") 
            {
                var treeNode = obj;
                checkedState = treeNode.checked;
                do
                {
                 obj = obj.parentElement;
                } 
             while (obj.tagName != "TABLE")
                var parentTreeLevel = obj.rows[0].cells.length;
                var parentTreeNode = obj.rows[0].cells[0];
                var tables = obj.parentElement.getElementsByTagName("TABLE");
                var numTables = tables.length
                if (numTables >= 1)
                {
                    for (i=0; i < numTables; i++)
                    {
                        if (tables[i] == obj)
                        {
                            treeNodeFound = true;
                            i++;
                            if (i == numTables)
                            {
                                return;
                            }
                        }
                        if (treeNodeFound == true)
                        {
                            var childTreeLevel = tables[i].rows[0].cells.length;
                            if (childTreeLevel > parentTreeLevel)
                            {
                                var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                                var inputs = cell.getElementsByTagName("INPUT");
                                inputs[0].checked = checkedState;
                            }
                            else
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }    </script>
    .cs代码
    TreeView1.Attributes.Add("onclick", "return client_OnTreeNodeChecked();");
      

  4.   

    private void treeView1_AfterChec(objectsender,
                                      System.Windows.Forms.TreeViewEventArgs e)
    {
            //遍历选种节点的集合                  
          foreach (TreeNode node in e.Node.Nodes)
          {
             //选种状态取非
    node.Checked = !node.Checked;
          }
    }
      

  5.   

    思路://规则1:取消选定
    //规则1.1:检查是否有子节点,需清除所有子节点的选定状态;
    //规则1.2:检查是否有父节点,如有,则根据兄弟节点的选定状态修改父节点的选定状态
    //规则2:选定
    //规则2.1:检查是否有子节点,设置所有子节点为选定状态
    //规则2.2:检查是否有父节点,如有,则根据兄弟节点的选定状态修改父节点的选定状态可参看
    http://blog.csdn.net/am2004/archive/2007/05/22/1621349.aspx