C# WinForm TreeView选择父节点子节点全选


 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         }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM