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
转载于:https://blog.51cto.com/dongdongdong/563640
PB-treeview基本属性事件函数相关推荐
- C# treeview滚动条事件
C# treeview滚动条事件 问题描述 解决思路 代码 问题描述 TreeView过长: 不点击节点,鼠标滚轮可以让滚动条滚动: 点击节点,按住不放,拖拽节点到页面外部,页面不会自动滚动,鼠标滚轮 ...
- 事件——事件绑定||事件函数传参||事件修饰符||按键修饰符||自定义按键修饰符
事件绑定 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8& ...
- Execution Order of Event Functions, unity 3d 事件函数的执行顺序
vs_Community.exe --layout "F:\linson\vs2017 comm\offline" --lang zh-CN 学习unity3d,感觉事件顺序很重要 ...
- Javascript 给页面元素添加事件函数探讨
前言 HTML 本身就有事件触发的属性,比如 onclick, onmouseover ,..... 直接看Code(注: 本文都以onclick 来做例子) <!--Add by oscar9 ...
- Unity3D中自带事件函数的执行顺序
在Unity3D脚本中,有几个Unity3D自带的事件函数按照预定的顺序执行作为脚本执行.其执行顺序如下: 编辑器(Editor) Reset:Reset函数被调用来初始化脚本属性当脚本第一次被附到对 ...
- js常用对象:点击、双击、onload事件、鼠标相关、onblur事件和onfocus事件等;通过循环给多个元素添加事件、通过addEventListener() 方法 监听事件函数...
1.通过标签内部添加事件 (1)onclick事件:单击事件 (2)ondbclick事件:双击事件 (3)onload事件:只能在body中使用,入口函数里有:window. .οnlοad=f ...
- Unity基础开发之事件函数的执行顺序
Unity基础开发之事件函数的执行顺序 文章目录 前言 一.Initializtion阶段 Awake() OnEnable() 二.Editor阶段 Reset() OnValidate() 三.第 ...
- Unity事件函数OnMouseDown生效条件
前言 通常,挂载一个脚本到物品上,可以通过重载函数OnMouseDown的方式直接实现鼠标点击该物品的逻辑. 然而,OnMouseDown这个方法并不是任何一个物品,场景下都可以生效的万能方法,我们还 ...
- Unity学习之常用事件函数Update深度解析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.常规更新函数 Update() FixedUpdate() LateUpdate() 总结 前言 Unity与常规 ...
最新文章
- 【ES6】JS第7种数据类型:Symbol
- 阿里JAVA面试题剖析:一般实现分布式锁都有哪些方式?使用 Redis 如何设计分布式锁?...
- Python里面的多线程
- ajax传递json数组php,怎么通过ajax传送json数组到php,并通过php将数据插入数据库
- 同步通信和异步通信的区别
- 1G.小a的排列(C++)
- javase模拟斗地主洗牌和发牌(54)
- ipvsadm命令及lvs-nat类型web服务器集群
- springboot记录用户访问次数_SpringBoot中自定义注解实现控制器访问次数限制示例...
- 中国水蛭素产品行业市场供需与战略研究报告
- jstl之c:forEach的使用
- centos 6.5安装extundelete软件报错
- 满怀希望,快乐坚强。
- 手机时钟软件推荐,创意时钟APP介绍
- 已知鸡和兔的总数量n,总脚数为m。输入n和m,依次输出鸡和兔的数目。如果无解,输出“no answer”。 将下面的代码填写完整。
- 利用IDEA的远程debug进行远程代码调试。
- gedit变身为编程利器的简单配置
- vue中实现汉字转化拼音
- 2020.8.3【算协集训】线性dp
- 运维工程师历年企业笔试真题汇总
热门文章
- 已达成计算机的连接数最大值无法再,已达到计算机的连接数最大值,无法再同此远程计算机连接...
- oracle创建主键开并行,Oracle并行添加主键
- kfcm算法matlab实现,KFCM算法分析
- 计算机组成原理实验软件仿真系统_计算机系统组成原理(基础)
- 平衡二叉树AVL删除
- linux php不能写文件内容,php 在linux系统下写出文件问题
- rssi定位算法 c语言,【论文※】An RSSI Gradient-based AP Localization Algorithm 基于RSSI梯度的AP定位算法...
- C/C++ 指针详解
- python 执行shell_python执行shell命令的方法
- 雷神开机logo更改_国产外星人雷神再发新品 911MT逐影者RTX2060光追游戏本评测