treeview控件中的checkbox级联选择。
- private void setNodeCheckState(TreeNode tn){
- foreach(TreeNode t in tn.Nodes)
- {
- t.Checked = tn.Checked;
- setNodeCheckState(t);
- }
- }
- private void setParentNodeCheckState(TreeNode tn)
- {
- if (tn.Level > 0)
- {
- if (tn.Checked)
- {
- foreach (TreeNode stn in tn.Parent.Nodes)
- {
- if (stn.Checked != tn.Checked)
- return;
- }
- tn.Parent.Checked = tn.Checked;
- setParentNodeCheckState(tn.Parent);
- }
- else
- {
- tn.Parent.Checked = tn.Checked;
- setParentNodeCheckState(tn.Parent);
- }
- }
- }
- private void tv1_AfterCheck(object sender, TreeViewEventArgs e)
- {
- if (e.Action != TreeViewAction.Unknown)
- {
- setNodeCheckState(e.Node);
- setParentNodeCheckState(e.Node);
- }
- }
treeview控件的checkbox级联选择实现
本文介绍如何在treeview控件中实现checkbox的级联选择功能。通过`setNodeCheckState`方法更新子节点状态,`setParentNodeCheckState`方法更新父节点状态,以及在`AfterCheck`事件中调用这两个方法来保持控件的同步。
2840

被折叠的 条评论
为什么被折叠?



