我想实现譬如选择某子节点的时候,父节点会自动选中,如果选择父节点,子节点会全部选中,如果子节点全部不选,父节点也要不选。
贴代码
private void tvwMenu_AfterCheck(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByMouse) { SoftMenu menu = e.Node.Tag as SoftMenu; if (menu.IsLast == 2) { if (e.Node.Checked) { e.Node.Parent.Checked = true; } else { int i = 0; foreach (TreeNode n in e.Node.Parent.Nodes) { if (n.Checked) { i++; break; } } if (i == 0) { e.Node.Parent.Checked = false; } } } else { SetFullNodesChecked(e.Node); } } } /// <summary> /// 选中节点 子节点全选或者全不选 /// </summary> /// <param name="node"></param> private void SetFullNodesChecked(TreeNode node) { foreach (TreeNode n in node.Nodes) { n.Checked = node.Checked; if (n.Nodes.Count > 0) { SetFullNodesChecked(n); } } }
代码比较简单
时间: 2024-10-27 05:06:49