752
社区成员
发帖
与我相关
我的任务
分享
/*============函数名:f_tree_browse_resursive
参数一:tv_1 treeview类型
参数二:in_tvnode long类型
返回值:None
==============================================*/
Integer li_Ret
Long ll_tvTmp
long ll_tvCurrent
long ll_tvRoot
TreeViewItem l_tv_item
ll_tvRoot = tv_1.FindItem(RootTreeItem!, 0)
ll_tvCurrent = in_tvNode
li_Ret = tv_1.GetItem(ll_tvCurrent, l_tv_item)
If li_Ret = -1 Then
MessageBox("信息", "树的遍历结束!") //遍历结束
Return
Else
//处理选中项目
if l_tv_item.StatePictureIndex = 2 then
MessageBox("信息","当前选中的遍历项为:" + l_tv_item.Label + "data为:" + string(l_tv_item.data))
end if
End If
IF l_tv_item.Children = True Then
ll_tvTmp = tv_1.FindItem(ChildTreeItem!, ll_tvCurrent) //当前项存在叶子,遍历其叶子
f_tree_browse_resursive(tv_1, ll_tvTmp)
Else
ll_tvTmp = tv_1.FindItem(NextTreeItem!,ll_tvCurrent) //当前项没有叶子,取得其下一项
If ll_tvTmp <> -1 Then
f_tree_browse_resursive(tv_1,ll_tvTmp) //下一项存在,遍历其下一项
else
//这个地方调整一下
ll_tvCurrent = tv_1.FindItem(ParentTreeItem!, ll_tvCurrent)
Do While True //下一项不存在,查找其父项的下一项
ll_tvTmp = tv_1.FindItem(NextTreeItem!, ll_tvCurrent)
If ll_tvTmp <> -1 Then Exit //找到了父项的下一项
If ll_tvCurrent = ll_tvRoot And ll_tvTmp=-1 Then Exit //找到树根
Loop
//f_tree_browse_resursive(tv_1, ll_tvTmp) //遍历其查找其父项
end If
End If