private bool nextCheck(TreeNode n) //判断同级的节点是否全选 { foreach (TreeNode tn in n.Parent.Nodes) { if (tn.Checked == false) return false; } return true; } private bool nextNotCheck(TreeNode n) //判断同级的节点是否全不选 { if (n.Checked == true) { return false; } if (n.NextNode == null) { return true; } return this.nextNotCheck(n.NextNode); } private void cycleChild(TreeNode tn, bool check) //遍历节点下的子节点 { if (tn.Nodes.Count != 0) { foreach (TreeNode child in tn.Nodes) { child.Checked = check; if (child.Nodes.Count != 0) { cycleChild(child, check); } } } else return; } private void cycleParent(TreeNode tn, bool check) //遍历节点上的父节点 { if (tn.Parent != null) { if (nextCheck(tn)) { tn.Parent.Checked = true; } else { tn.Parent.Checked = false; } cycleParent(tn.Parent, check); } return; } // afterCheck private void treeView1_AfterCheak(object sender, TreeViewEventArgs e) //当选中或取消选中树节点上的复选框时发生 { //要求父节点被勾选,则子节点全部被勾选;父节点不被勾选,则子节点不全不被勾选 if (e.Node.Checked ==
winformC# TreeView 点击父节点,子节点全选,
最新推荐文章于 2021-07-29 10:17:08 发布