pb 11.5 我對樹在代碼里進行定位,找到一個handle后,用selectitem已經選中了該節點,但是樹的滾動條沒有滾動到該節點所在的頁面,需要手工拖動滾動條到該節點所在的位置。
PB6.5里面是自動會滾動到節點所在的頁面的,不知道各位有沒有碰到這個問題?
是不是有函式或者屬性可以控制樹的滾動條的位置?
uj5u.com熱心網友回復:
我也正在找呢?沒找到uj5u.com熱心網友回復:
應該沒有問題的。給你一個函式,可以用于查找符合節點。/*******************************************
/在treeview中查找匹配的label或data
/呼叫語法:findtreeitem(tv_tree,fidnby,data)
/呼叫引數: treeview tv_tree
/ bollean findby 指明查找方式:flase 搜索label,true 搜索data
/ any data 指明查找內容
/回傳值: long 成功 回傳項的句柄 handle
/ 0 沒有找到
/ -1 出錯
/ -2 終止查找
********************************************/
long ll_hdl[]
int li_level,li_data
treeviewitem lt_tvi
string ls_label,ls_data
dec ld_data
gb_interrupt = false
li_level = 1
ll_hdl[1] = tv_tree.finditem(RootTreeItem!,0)
Do while li_level > 0
//
yield()
if gb_interrupt then
gb_interrupt = false
exit
end if
if tv_tree.Getitem(ll_hdl[li_level],lt_tvi) = -1 then return -1
if findby then
choose case ClassName(lt_tvi.data)
case "integer"
li_data = integer(lt_tvi.data)
case "string"
ls_data = string(lt_tvi.data)
case "number"
ld_data = dec(lt_tvi.data)
end choose
if ls_data = string(data) then
return ll_hdl[li_level]
end if
else
ls_label = lt_tvi.label
if pos(ls_label,string(trim(data))) > 0 then
tv_tree.selectitem(ll_hdl[li_level])
if MessageBox('提示','是否繼續查找?',question!,YesNo!) = 2 then
return -2
end if
end if
end if
if lt_tvi.children then
tv_tree.expanditem(ll_hdl[li_level])
li_level++
ll_hdl[li_level] = tv_tree.finditem(ChildTreeItem!,ll_hdl[li_level - 1])
else
ll_hdl[li_level] = tv_tree.finditem(NextTreeItem!,ll_hdl[li_level])
end if
do while ll_hdl[li_level] <= 0
li_level --
if li_level = 0 then exit
tv_tree.collapseitem(ll_hdl[li_level])
ll_hdl[li_level] = tv_tree.finditem(NextTreeItem!,ll_hdl[li_level])
loop
loop
return 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/63669.html
標籤:控件與界面
上一篇:SQL相減問題
