久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

PB TreeView 查找節(jié)點(轉(zhuǎn))

 綠茶圖書吧 2013-08-24

PB TreeView 查找節(jié)點(轉(zhuǎn))

 

 

    PowerBuilder提供的TreeView控件可以使我們以樹形方式分層組織和顯示數(shù)據(jù),,使程序的表現(xiàn)更為靈活,,用戶的操作更加方便,。通常情況下,,在TreeView控件中通過展開和折疊各分枝,可以方便地對所需信息進(jìn)行查找和定位,,但是如果該控件中的內(nèi)容層次較多,,用戶對其內(nèi)容又不非常了解時,要讓用戶逐一展開各分枝進(jìn)行定位就會使效率降低,這種情況下就需要提供一種自動查詢方式,,讓用戶輸入要找的信息,,由程序來完成在TreeView控件中的查找和定位。 

    PowerBuilder的TreeView控件沒有直接提供完成這一功能的函數(shù)或方法,,也就是說不能直接在TreeView控件的各節(jié)點中查找所需的數(shù)據(jù),。該控件具有一個FindItem()函數(shù),可用于查找節(jié)點項,,但該函數(shù)不能直接對我們所要找的數(shù)據(jù)進(jìn)行查找,,例如字符文本或數(shù)值數(shù)據(jù),它只能基于TreeView控件的某一節(jié)點項的句柄進(jìn)行查找,。不過我們可以利用該函數(shù)來獲得節(jié)點項的句柄,,再通過該句柄進(jìn)一步獲得節(jié)點項的詳細(xì)信息。FindItem() 函數(shù)的語法如下: 

treeviewname.FindItem ( navigationcode, itemhandle )

    其中,,treeviewname是我們要在其中進(jìn)行查找的TreeView控件的名稱,; 
    navigationcode參數(shù)是一個TreeNavigation枚舉數(shù)據(jù)類型,用來表明itemhandle參數(shù)與要找的節(jié)點項之間的關(guān)系,,有效的取值如下: 

RootTreeItem! 
查找第一層的第一項,;
NextTreeItem! 
在同一級中查找itemhandle后的下一項;
PreviousTreeItem! 
在同一級中查找itemhandle前面的一項,;
ParentTreeItem!
查找itemhandle的父節(jié)點,;
ChildTreeItem! 
查找itemhandle的第一個子節(jié)點;
FirstVisibleTreeItem! 
查找在TreeView控件中可視的第一項而不論層次,;
NextVisibleTreeItem!
查找itemhandle后已展開的第一項,,不分層次;
PreviousVisibleTreeItem! 
查找itemhandle前已展開的第一項,,不分層次,;
CurrentTreeItem! 獲得當(dāng)前所選項;
DropHighlightTreeItem! 
查找DropHighlighted屬性最近被設(shè)置過的項,。
Itemhandle參數(shù)表示節(jié)點項的句柄,。

    該函數(shù)返回一個長整形值,若執(zhí)行成功返回找到的節(jié)點的句柄,,若失敗則返回 -1,。除了ChildTreeItem!,F(xiàn)indItem不查找未展開的項,。利用FindItem只能獲得節(jié)點項的句柄,,要得到某一節(jié)點的詳細(xì)信息,還需要利用TreeView控件的GetItem()函數(shù),。該函數(shù)可通過節(jié)點項句柄得到節(jié)點項的狀態(tài)信息,,如label,、picture index、childen等,,只有比較這些狀態(tài)信息如label的值,,我們才能確定是否已經(jīng)找到所需的節(jié)點項。該函數(shù)如下所示: 

treeviewname.GetItem ( itemhandle, item)

    其中,,treeviewname是TreeView控件的名稱;itemhandle 是要獲取信息的節(jié)點項的句柄,;item參數(shù)是一個TreeViewItem系統(tǒng)對象變量,,用于存放節(jié)點項的信息。 
setpointer(hourglass!)

long ll_handle

 long ll_handletree[]

long ll_level

int li_find

treeviewitem ltvi_1

li_find = 0

tv_treeview.setredraw(false)

ll_handle = tv_treeview.finditem(RootTreeItem! ,0)

//tv_treeview.expandall(ll_handle) tv_treeview.expandItem(ll_handle)

do while ll_handle >0 tv_treeview.getitem(ll_handle,ltvi_1)

 if ltvi_1.label = sle_content.text then

li_find = 1

exit

 end if

ll_handle = tv_treeview.finditem(NextVisibleTreeItem! ,ll_handle) // tv_treeview.expandall(ll_handle) tv_treeview.expandItem(ll_handle)

 loop

ll_level=1

if ll_handle > 0 then

ll_handletree[ll_level]=ll_handle

ll_handle=tv_treeview.finditem(ParentTreeItem! ,ll_handle)

do while ll_handle > 0

 ll_level ++

ll_handletree[ll_level]=ll_handle

ll_handle=tv_treeview.finditem(ParentTreeItem! ,ll_handle)

 loop end if

ll_handle = tv_treeview.finditem(RootTreeItem! ,0)

do while ll_handle > 0

 tv_treeview.CollapseItem(ll_handle)

 ll_handle = tv_treeview.finditem(NextTreeItem! ,ll_handle)

loop

do while ll_level > 0 and li_find = 1

 tv_treeview.expanditem(ll_handletree[ll_level])

if ll_level = 1 then

 tv_treeview.selectitem(ll_handletree[ll_level])

tv_treeview.setfocus()

exit

else ll_level -- end if loop

tv_treeview.setredraw(true)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多