1  //设置标志,防止死循环
 2         bool check = false;
 3         public void TV_AfterCheck(object sender, TreeViewEventArgs e)
 4         {
 5             if (check == false)
 6                 setchild(e.Node);
 7             setparent(e.Node);
 8             check = false;
 9         }
10 
11         //设置子节点状态
12         private void setchild(TreeNode node)
13         {
14             foreach (TreeNode child in node.Nodes)
15             {
16                 child.Checked = node.Checked;
17             }
18             check = true;
19         }
20 
21         //设置父节点状态
22         private void setparent(TreeNode node)
23         {
24             if (node.Parent != null)
25             {
26                 //如果当前节点状态为勾选,则需要所有兄弟节点都勾选才能勾选父节点
27                 if (node.Checked)
28                     foreach (TreeNode brother in node.Parent.Nodes)
29                     {
30                         if (brother.Checked == false)
31                             return;
32                     }
33                 node.Parent.Checked = node.Checked;
34             }
35         }

 

相关文章:

  • 2021-06-06
  • 2021-12-28
  • 2021-10-28
  • 2021-06-12
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2021-06-27
  • 2021-10-08
  • 2021-12-08
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案