PB TreeView 控件实现查找功能

来源:互联网 发布:ecshop 数据库字典 编辑:程序博客网 时间:2024/06/10 04:21
long ll_handle,ll_level,ll_handletree[]int li_findstring ls_findtreeviewitem ltvi_1SetPointer(hourglass!)tv_1.setredraw(false)ls_find = sle_find.textif trim(ls_find) = '' then Messagebox("提示","请先输入查询条件!")return end if li_find = 0if il_handle > 0 then ll_handle = il_handle + 1elsell_handle = tv_1.finditem(RootTreeItem! ,0)end if //tv_1.expandall(ll_handle) tv_1.expandItem(ll_handle)  do while ll_handle > 0 tv_1.getitem(ll_handle,ltvi_1)//if ltvi_1.label = ls_find thenif pos(ltvi_1.label,ls_find) > 0  then //支持模糊查询li_find = 1exitend ifll_handle = tv_1.finditem(NextVisibleTreeItem! ,ll_handle) //tv_1.expandall(ll_handle) tv_1.expandItem(ll_handle) loopll_level = 1if ll_handle > 0 thenll_handletree[ll_level] = ll_handlell_handle = tv_1.finditem(ParentTreeItem! ,ll_handle)do while ll_handle > 0ll_level ++ll_handletree[ll_level] = ll_handlell_handle = tv_1.finditem(ParentTreeItem! ,ll_handle)loop end ifll_handle = tv_1.finditem(RootTreeItem! ,0)do while ll_handle > 0tv_1.CollapseItem(ll_handle)ll_handle = tv_1.finditem(NextTreeItem! ,ll_handle)loopdo while ll_level > 0 and li_find = 1tv_1.expanditem(ll_handletree[ll_level])if ll_level = 1 thentv_1.selectitem(ll_handletree[ll_level])tv_1.setfocus()il_handle = ll_handletree[ll_level] //记录上次查询的节点exitelse ll_level -- end if looptv_1.setredraw(true)if li_find = 0 then il_handle = 0ll_handle = tv_1.finditem(RootTreeItem! ,0)tv_1.expandall(ll_handle) Messagebox("提示","找不到【" + ls_find+"】!")end if 

0 0
原创粉丝点击