以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]树节点选择联动 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25185) |
||||
-- 作者:chnfo -- 发布时间:2012/11/2 16:55:00 -- [求助]树节点选择联动 有一个树,要做复选。 1.如果选中节点,则它所有的子节点都被选择,反之,取消选中节点,所有的子节点取消选择,这个在帮助里有。 For Each
nd As WinForm.TreeNode In e.Node.AllNodes nd.Checked = e.Node.Checked Next 2.如果这个节点所有的子节点都取消选中状态,则这个节点的状态改为未选中,代码又该如何?
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/2 17:01:00 -- 可以弄……楼主先给大家做棵树出来。 |
||||
-- 作者:chnfo -- 发布时间:2012/11/2 17:07:00 -- 听大师的,上传附件。
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/2 17:32:00 -- 好的,弄好了,涉及简单的递归,代码写在内部函数里
|
||||
-- 作者:chnfo -- 发布时间:2012/11/2 20:50:00 -- 关于内部函数研究了好久,看不太明白。 帮助里的文档对这个内部函数解释也很少,各位狐神能对这个东东的计算过程详细解释一下么?
[此贴子已经被作者于2012-11-2 20:49:50编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/2 20:55:00 -- 内部函数和事件是一样的。不要看得有多神秘。 内部函数可以接收外面传进来的值,最后可以返回一个值。 在内部函数里执行的东西,也可以直接写在事件里,只是那样写代码显得累赘才分开写的。 |
||||
-- 作者:chnfo -- 发布时间:2012/11/2 21:35:00 -- 真正要实现的是几个: 1.选择了父节点,则所有子节点都被选择;反之,取消父节点,则所有子节点都被取消 2.选择了任一子节点,则该子节点的父节点,以及父节点的父节点,一直到顶级节点都被选择 3.如果某一节点的所有子节点都被取消,则此节点也取消。
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/2 21:39:00 -- 那现在只有第二项没有完成吧?等等,帮你弄一下。 |
||||
-- 作者:chnfo -- 发布时间:2012/11/2 21:48:00 -- 哦,还有一点,如果所有子节点都被选择,则父节点也被选择。 啊哦,第二种情况包括它了。
[此贴子已经被作者于2012-11-2 21:52:21编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/2 21:54:00 -- 以下是引用chnfo在2012-11-2 21:48:00的发言:
哦,还有一点,如果所有子节点都被选择,则父节点也被选择 这个不需要了吧,你不是说,只要选中一个,父节点自动被选取了么?
|