以文本方式查看主题

-  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
--  
听大师的,上传附件。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树节点与子节点同步变化.table


--  作者:lin_hailun
--  发布时间:2012/11/2 17:32:00
--  
好的,弄好了,涉及简单的递归,代码写在内部函数里

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树节点与子节点同步变化.table


--  作者: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的发言:
哦,还有一点,如果所有子节点都被选择,则父节点也被选择

这个不需要了吧,你不是说,只要选中一个,父节点自动被选取了么?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树节点与子节点同步变化.table