今天写了一个测试代码demo。放这里备份。
主要是使用FindItem函数,指定相应的参数。
PowerBuilder 实现代码
long hItem ,hRoot,h
hRoot= tv_1.FindItem(ChildTreeItem! ,iroot )
do while(hRoot > 0 )
TREEVIEWITEM tvi
hRoot = tv_1.FindItem(NextTreeItem! ,hRoot )
if hRoot > 0 then
workdata data
tv_1.getitem(hRoot,tvi)
data = tvi.data
if data.isdir then
lb_1.additem(data.path )
else
lb_1.additem(data.filename )
end if
if(tvi.children = true ) then
treelist(hRoot)
end if
end if
loop
return 0
FindItem
FindItem never finds a collapsed item, except when looking for ChildTreeItem!, which causes an item to expand. CurrentItem! is not changed until after the clicked event occurs. To return the correct handle for the current item when the user clicks it, create a custom event to return the handle and post it in the clicked event.
If navigationcode is RootTreeItem!, FirstVisibleTreeItem!, CurrentTreeItem!, or DropHighlightTreeItem!, set itemhandle to 0.
The following table shows valid values for the navigationcode argument.
Navigationcode value What FindItem finds
RootTreeItem! The first item at level 1. Returns -1 if no items have been inserted into the control.
NextTreeItem! The sibling after itemhandle. A sibling is an item at the same level with the same parent. Returns -1 if there are no more siblings.
PreviousTreeItem! The sibling before itemhandle. Returns -1 if there are no more siblings.
ParentTreeItem! The parent of itemhandle. Returns -1 if the item is at level 1.
ChildTreeItem! The first child of itemhandle. If the item is collapsed, ChildtreeItem! causes the node to expand. Returns -1 if the item has no children or if the item is not populated yet.
FirstVisibleTreeItem! The first item visible in the control, regardless of level. The position of the scroll bar determines the first visible item.
NextVisibleTreeItem! The next expanded item after itemhandle, regardless of level. The NextVisible and PreviousVisible values allow you to walk through all the visible children and branches of an expanded node. Returns -1 if the item is the last expanded item in the control.To scroll to an item that is beyond the reach of the visible area of the control, use FindItem and then SelectItem.
PreviousVisibleTreeItem! The next expanded item before itemhandle, regardless of level. Returns -1 if the item is the first root item.
CurrentTreeItem! The selected item. Returns -1 if the control never had focus and nothing has been selected.
DropHighlightTreeItem! The item whose DropHighlighted property was most recently set. Returns -1 if the property was never set or if it has been set back to false because of other activity in the control.