以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]树节点的复选问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71694) |
-- 作者:chnfo -- 发布时间:2015/7/16 12:02:00 -- [求助]树节点的复选问题 现在的方法可以做下级节点与上级节点复选状态一致,但如何做到只要任何一个下级节点没勾选,它的所有直系上级节点不勾选,当父节点的所有下级节点勾选后,它自动勾选? |
-- 作者:大红袍 -- 发布时间:2015/7/16 12:03:00 -- 目录树全选代码
|
-- 作者:chnfo -- 发布时间:2015/7/16 12:45:00 -- 用了一个自认为简单的逻辑来实现它了,感谢袍兄 \'----这是选择了父节点,则所有子节点选中 For Each nd As WinForm.TreeNode In e.Node.AllNodes nd.Checked = e.Node.Checked Next ‘----当子节点的选择状态发生变化时,父节点的变化情况’ For Each nd As WinForm.TreeNode In e.Sender.AllNodes ‘遍历所有节点’ if nd.nodes.count > 0 then For Each cnd As WinForm.TreeNode In nd.AllNodes If cnd.Nodes.Count = 0 Then ‘这是用来判断末级节点的选中状态,非末级节点不用理会’ If cnd.Checked = False Then ‘如果末级节点有任何一个未选中,则该节点不被选中’ nd.Checked = False Exit For Else nd.Checked = True ‘如果末级节点选中,则再找下一个末级节点的选择状态’ End If End If Next end if Next [此贴子已经被作者于2015/7/16 12:48:05编辑过]
|