PB 遍历一个 treeview , 希望遍历出指定节点下的所有子节点

Divina 2008-11-28 06:50:12
如题,望大虾们解答。
鄙人是新手,没有 PFC
急!!!!!

...全文
406 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Divina 2008-11-30
  • 打赏
  • 举报
回复
回复 楼上的 :
我最初的想法也是走 递归遍历 , 没递归明白 ,谢谢你的方法 。

我要结帖拉,因为我已经先接受了2L 的方法,所以把分数给你们四六开。多谢两为帮忙~!
jlwei888 2008-11-30
  • 打赏
  • 举报
回复
为TreeView控件添加一个用户事件ue_synchronizechildren(long handle),代码如下:
long childitem
treeviewitem tvitem
getitem(handle, tvitem)
childitem=this.finditem(ChildTreeItem!, handle)
do while(childitem<>-1)
messagebox( '', tvitem.label )
this.Event ue_synchronizechildren(childitem) //递归遍历后代结点
childitem=this.finditem(NextTreeItem!, childitem)
loop
Divina 2008-11-30
  • 打赏
  • 举报
回复
谢谢!没想到一个 NextVisibleTreeItem 就可以搞定 , 做的时候只知道用 NextTreeItem , 再次感谢~!
liubocy 2008-11-28
  • 打赏
  • 举报
回复
点击tv_1上某个节点,点cb遍历其所有子节点

//声明实例变量long il_handle

//tv_1 selectionchanged事件:
il_handle = newhandle

//cb_1 clecked事件
long ll_handle, ll_level, ll_leveltmp
treeviewitem ltvi_1

ll_handle = il_handle
tv_1.getitem(ll_handle,ltvi_1)
ll_level = ltvi_1.level
ll_leveltmp = ll_level + 1
tv_1.expandall(ll_handle)
do while ll_leveltmp > ll_level
ll_handle = tv_1.finditem(NextVisibleTreeItem! ,ll_handle)
if ll_handle < 0 then exit
tv_1.getitem(ll_handle,ltvi_1)
ll_leveltmp = ltvi_1.level
if ll_leveltmp > ll_level then messagebox( '', ltvi_1.label )
tv_1.expandall(ll_handle)
loop

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧