PB-treeview基本属性事件函数
 

Label    

项目的标识文字

OverlayPictureIndex

指定要使用的重叠图片的列表中的图片索引, 该图片显示在正常图片的上边StatePictureIndex      与状态图标列表中某个图标相对应的索引号.该图标显示在普通图标的左边SelectPictureIndex    与普通图标列表中某个图标相对应的索引号,当该项选中时显示该图标。如果该值为0的话,则表示不显示任何图标

Data

为项目选择一个数据类型(可从任何数据类型是中进行选择).可以利用此属性控制项目的排序或生成数据库查询条件, 为项目选择一个数据类型(可从任何数据类型是中进行选择).可以利用此属性控制项目的排序或生成数据库查询条件

HasButtons

当某个列表有子列表项时,就在其前显示“+”或“-”按钮,以表示该列表项是折叠的还是展开。

HasLines和LinesAtRoot

显示某一枝中连接项目的连线和显示连接根一级项目的连线

Checkboxes

 用选中或未选中的复选框替换状态图标

TrackSelect 

设置热点跟踪功能,当鼠标在列表上移动时改变当前经过的列表项的显示状态

FullRowSelect

高亮显示所选项的整个行(没看出现象)

SingleExpand

展开所选项并自动折叠前一个选中的项

Indent

设置列表项的缩进程度

Font属性类

设置所有列表项标识的字体;各类图标属性设置图标及其大小

Children

如果想通过双击鼠标来触发ItemPopulate事件的话,则必须把这个属性设为True,ItemPopulate事件脚本可插入子项

PictureIndex

与普通图标列表中某个图标相对应的索引号

与拖拽项目相关的属性及事件

DragAuto

指定PowerBuilder 是否把该控件置入拖拽模式(DragMode),
有效取值为 true =  当该控件被单击时, 该控件自动进入拖拽模式, false =  当该控件被单击时,该控件不进入拖拽模式. 此时如果需要将控件置为拖拽模式, 需要在代码中使用Drag() 函数手工设置

DisableDragDrop

指定当用户单击某个列表项进行拖拽时,能否触发与拖拽事件相关的事件,比如BeginDrag 事件.
有效取值为 true = 不触发拖拽事件, false = 触发拖拽事件

DragIcon

指定用户拖拽图象的名称,该名称可以是系统预定的图标名(比如 exclamation!, information!)也可以是图标文件名(.ico). 缺省时, 系统使用控件大小的方框作为拖拽图标. 在用户拖动控件过程中, 当被拖动控件进入该控件可以被放下的区域时, 系统显示拖动图标.

BeginDrag事件

当用户在控件中按下鼠标左键进行拖拽时触发, 如果该控件的DragAuto 属性设置为 true , 拖拽过程由PB 自动完成. 如果该控件的 DragAuto 属性设置为 false, 则拖拽过程必须通过编程来实现
DragWinthin 

以高亮显示拖拽目标项目的脚本, 当某个被拖拽控件处于该控件内部时触发

DragDrop 

实现拖拽操作的脚本事件, 当某个被拖拽控件, 放到该控件上时触发

PictureIndex
 
 
ItemPopulate
 当第一次展开某列表项时触发, 该事件返回 1 被阻止展开, 返回 0 完成展开. 如果列表项
没有子项, 那就不能被展开. 一般来说该事件与ItemExpanding 事件常用于生成相应列表项的子列表项

  函数

 
InsertItem
在某父项目下,在指定的同层项目后面插入一项,如果父项目下还没有子项目,则需使用其
他插入函数0意为插入到根级层次
InsertItem()
功 能: 在树形视图控件的指定层次, 指定位置上插入一个列表项. 该函数有两种语法格式:
语法一 只需提供要插入列表项的标题和图片索引,
语法二 提供列表项标题和图片索引, 在指定层次, 指定位置上插入列表项.
语 法: TreeViewName.InsertItem( HandleParent, HandleAfter, Label, PictureIndex )
参 数: TreeViewName: 树形视图控件的名称.
        HandleParent: 指定要插入列列项父节点的句柄( 一个长整数, 每个节点都有一个
                      唯一代表该节点的句柄 ) , 对第一层节点, 该项的值为0 .
        HanldeAfter : 指定在同一层中句柄为HandleAfter 的项后面插入新项.
        Label       : 新插入列的标题, 即显示树视图控件的文字.
        PictureIndex: 新插入列表项标题前显示的图片的索引号.
返回值: Long 函数执行成功时返回新插入列表项的句柄, 发生错误时函数返回 -1.
用 法: 使用这种语法格式插入列表项时, 应用程序只需要提供新插入列表项的标题
        以及图片索引. 如果想在插入列表项的同时, 设置列表项的更详细信息, 那么请使用
        TreeViewItem.InsertItem( HandleParent, HandleAfter, TreeViewItem )
说 明: 在插入列表项时, 如果树视图控件的 SortType 属性设置为 Unsorted! 之外的值, 那么
        插入的列表项将根据 SortType 属性的值进行排序.
        如果想插入某个列表项的第一个子列表项, 那么请使用 InsertItemLast() 或 InsertItemFirst()
示 例: 下面的代码在当前列表项后面插入一个列表项, 新插入列表项与当前列表项位于同一个层次上:
        Long ll_tvi, ll_tvparent
      
        // 得到当前列表项的句柄
        ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0)
        // 得到当前列表项的父列表项的句柄
        ll_tvparent = tv_list.FindItem(ParentTreeItem, ll_tvi)
       
        // 插入新列表项
        tv_list.InsertItem( ll_tvparent, ll_tvi, "东方不败", 2 )
语法二: 提供列表项完整信息, 在指定层次, 指定位置上插入列表项
语 法: TreeViewName.InsertItem( HandleParent, HandleAfter, item )
参 数: TreeViewName: 树视图控件的名称
        HandleParent: 指定要插入列表项父节点的句柄( 一个长整数, 每个节点都有一个
        唯一代表该节点的句柄 ), 对第一层节点, 该项的值为 0.
        HandleAfter : 指定在同一层中句柄为 HandleAfter 的项后面插入新项.
        Item        : TreeViewItem 对象, 指定要插入的列表项.
返回值: Long. 函数执行成功时返回新插入列表项的句柄, 发生错误时函数返回 -1.
用 法: 使用这种语法格式插入列表项时, 应用程序需要提供新插入列表项的完整信息. 如果只想在插入
        列表项时简单提供列表项的标题, 以及图片索引, 那么请使用语法一格式的InsertItem() 函数.
说 明: 在插入列表项时, 如果树视图的 SortType 属性设置为 Unsorted! 之外的值, 那么插入的列表
        项将根据 SortType 属性的值进行排序.
        如果想插入某个列表项的第一个子列表项, 那么请使用 InsertItemLast() 或 InsertItemFirst()
示 例: 下面的代码在当前列表项后面插入一个列表项, 新插入列表项与当前列表项位于同一层次上:
       
        Long ll_tvi, ll_tvparent
       
        // 得到当前列表项的句柄
        ll_tvi = tv_list.FindItem( CurrentTreeItem!, 0 )
        // 得到当前列表项父列表项的句柄
        ll_tv_parent = tv_list.FindItem( ParentTreeItem!, ll_tvi )
        // 插入新列表项
        tv_list.InsertItem( ll_tvparent, ll_tvi, ltv_item )
        // 其中, 假设 TreeViewItem 对象 ltv_item 在程序的某个地方已经赋值.
InsertItemFirst
作为父项目的第一个子项目插入
InsertItemLast
作为父项目的最后一个子项目插入
InsertItemSort
如果可能的话按字母顺序插入到某个父项目下
FindItem
获得句柄,当前项目或父项目
tv_1.SetFirstVisible(tv_1.FindItem(RootTreeItem!,0)) 设置第一个项目为可视的句柄
tv_1.FindItem(CurrentTreeItem!,0)     当前选中项的句柄
tv_1.FindItem(ParentTreeItem!,tv_1.FindItem(CurrentTreeItem!,0)) 当前选中项的父项句柄
tv_1.FindItem(RootTreeItem!,0)        TreeView中的第一个项目
tv_1.FindItem(PreviousTreeItem!, ll_handle)

常用代码    
// 若要改变TreeView控件中的属性的话,可按以下步骤
A. 通过GetItem函数获得项目,并赋值给一个TreeViewItem结构
B. 重新设置TreeViewItem的属性值
C. 通过SetItem函数,把TreeViewItem中的值拷贝回TreeView控件中
删除项目,若要用户删除TreeView控件中的项目,首先需将TreeView控件的DeleteItem属性设为True.
当用户按下Delete时,就会删除当前选中的项目并且触发TreeView控件的DeleteItem事件.当前选中
项目的所有子项目也会被删除.
如果想对删除操作进行控制,如果只允许删除最底层项目,则不能把TreeView控件的DeleteItems属性设置为True,而是要通过
编码调用DeleteItem函数完成删除,该函数也能够触发DeleteItem事件
RootTreeItem! 在树中的第一项
NextTreeItem!  同一级的兄弟项,下一个
PreviousTreeItem! 同一级的兄弟项,上一个
ParentTreeItem! 当前项的父项
ChildTreeItem! 当前句柄的第一个子项
FirstVisibleTreeItem! 第一个显示的项在控件中,不管在那一级.滚动条位置决定第一个显示项.
NextVisibleTreeItem! 下一个展开项后的项句柄,不管在那一级.下一个显示项与上一个显示项允许你通过所有显示子项和展开项分枝
PreviousVisibleTreeItem! 下一个展开项当前句柄前,不管在那一级.
CurrentTreeItem! 被选中的项.
DropHighlightTreeItem! 属性被设为DropHighlighted