PB TreeView控件常用属性、事件和函数.doc_第1页
PB TreeView控件常用属性、事件和函数.doc_第2页
PB TreeView控件常用属性、事件和函数.doc_第3页
PB TreeView控件常用属性、事件和函数.doc_第4页
PB TreeView控件常用属性、事件和函数.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TreeView控件可以以树型方式来组织项目,不仅显示直观、界面友好,而且项目的管理和操作更为方便,是当前比较流行的一个控件。该控件的特点是在较小的空间可以分层次显示大量的数据,并且可以按照用户的要求检索数据。该控件具有以下功能:通过可以展开或者折叠的节点遍历数据。图形化和文本化的节点显示。拖放操作。包括剪切、复制和粘贴的节点操作。典型编程通常TreeView控件用来让用户选择数据,或者进行数据的管理。比如,在一个人事管理软件中,使用部门、姓和名这样的三层结构查找数据就比较容易,而且可以通过拖拉来进行人事单位的变动。首先,在窗口打开时创建该控件。下面的脚本向TreeView控件中首先添加最高级别的项目:TreeViewItem ltvi_itemltvi_item.children = Trueltvi_item.SelectedPictureIndex = 1ltvi_item.Label = 餐饮部ltvi_item.Data = 餐饮部ltvi_item.PictureIndex = 1Tv_1.InsertItemLast(0,ltvi_item)ltvi_item.Label = 接待部ltvi_item.Date = 接待部ltvi_item.PictureIndex = 2Tv_1.InsertItemLast(0,ltvi_item)上面的脚本添加所有一级项目,可以反复使用上面的脚本,直到添加完所有的一级项目。因为这些一级项目在程序运行之前就可以确定,所以可以直接添加。对于数据可能要发生变动的,应该从数据库中提取数据,通过循环来添加项目。下面的脚本在用户开始拖动时判断选中项目是否允许拖动。在部门、姓和名三层结构中,只允许拖动最低一层的数据。所以,在BeginDrag事件中编写如下脚本:TreeViewItem ltvi_sourceIf ltvi_source 2 Then /判断用户选中的是否是职工,只能拖动职工This.Drag(Cancel!)Else/保存被拖动项目和其父项目,语句省略End If 当用户在可以接收拖动数据的项目上时,应该高亮显示该项目,以给用户一定的操作暗示信息。首先判断当前鼠标所在的项目是否可以接收拖动的数据,如果可以接收则高亮显示该项目。在DragWithin事件中编写如下脚本:TreeViewItem ltvi_overIf GetItem(handle,ltvi_over) = -1 ThenSetDropHightLight(0)Return 0End If当用户在可以接收拖动数据的项目上释放鼠标时,应该对项目进行一定的处理。通常要删除源数据,并且在释放的目标项目中添加该数据。【属性】*TreeView属性Visible布尔类型,表示该控件是否可见。该属性的缺省值为True。Enabled布尔类型,表示控件是否可用。该属性的缺省值为True。EditLabels布尔类型,表示用户是否可以编辑控件中项目的标签。缺省值为False,不允许用户编辑标签。HasButtons布尔类型,表示是否在父项目的左边显示“+”和“-”按钮来表示是展开还是折叠状态。该属性的缺省值为True。HasLines布尔类型,表示在项目之间和父子项目之间是否有线相连。该属性的缺省取值为True。LinesAtRoot布尔类型,表示是否显示连接所有根项目的线条,该属性的缺省值为False。DeleteItems布尔类型,表示是否也许用户在控件中使用Delete按钮来删除项目。该属性的缺省取值为False。DisableDragAndDrop布尔类型,表示是否禁止用户进行拖拉操作。该属性的缺省值为True,不允许用户进行拖拉操作。HideSelection布尔类型,表示当TreeView控件失去焦点时选中的内容是否不保持高亮显示。该属性缺省值为True,表示当TreeView控件失去焦点时不高亮显示其中的选中项目。ToolTips布尔类型,表示是否显示工具栏气泡帮助。该属性的缺省取值为True。CheckBoxes布尔类型,表示项目左面是否显示复选框。缺省为False。TrackSelect布尔类型,表示项目是否进行选择跟踪,也就是当该属性取值为True,鼠标位于某个项目之上时,这项目改变颜色并且在项目下面显示下划线,表示当前项目正准备接收鼠标的操作。该属性的缺省取值为False。FullRowSelect布尔类型,表示当选中项目时是否整行显示。该属性的缺省值为False。SingleExpand布尔类型,表示是否只有一个项目可以展开。当该属性取值为True时,当前选中的项目展开,前面选中的项目自动折叠;当该属性取值为False时,可以有多个项目同时处于展开状态。该属性的缺省取值为False。Border布尔类型,表示该控件是否显示边框。该属性的缺省取值为True。该属性选中时,边框显示的样式还取决于BorderStyle属性的取值。BorderStyle枚举类型,表示边框的显示样式。该属性可用的取值有StyleBox!(矩形边框),StyleLowered!(嵌入边框),StyleRaised!(高抬边框)和StyleShadowBox!(阴影矩形边框)。SortType枚举类型,该属性用来规定控件中项目的排序规则。可用的取值有Ascending!(按字典顺序升序排列),Descending!(按字典顺序降序排列),UserDefinedSort!(根据用户在sort事件中的脚本进行排序)和Unsorted!(不排序)。IndentInteger类型,表示以PowerBuilderUnit为单位的子项目的缩进数。该属性的取值可以为负数,但是这样有可能便子项目左移出控件的边界。缺省取值为0。AcceleratorInteger类型,取值为控件快捷链的ASCII码值。该属性保存了控件快捷键对应的ASCII码值。*TreeViewItem属性BoldBoolean项目标签上的文字以粗体显示ChildenBoolean项目是否拥有子项目,可以使用该属性拥有子项目,以便在以后触发ItemPopulate和ItemExpanding事件CutHighLightedBoolean确定项目是否是要剪切的对象DataAny用户想和项目关联的数据值DropHighLightedBoolean确定项目是不是当前要拖拉的对象ExpandedBoolean确定项目是否展开ExpandedOnceBoolean确定项目是否至少被展开过一次。当在控件的ItemPopulate事件中添加子项目时该属性很有用,可以用来判断是否已经添加了子项目HasFocusBoolean判断项目是否获得当前焦点ItemHandleLong项目的句柄。一个项目的句柄是惟一的,并且不同项目的句柄也不会有重复LabelLabel项目的文本标签LevelInteger确定TreeView控件中的项目的层次。根层次的取值为1OverlayPictureIndexInteger覆盖图像列表中的图像索引号PictureIndexInteger和项目相连的图像在图标列表中的索引号SelectedPictureIndexInteger当项目选中时与项目相连的图像在图标列表中的索引号SelectedBoolean确定项目是否被选中StatePictureIndexInteger项目状态图标的索引号【事件】BeginDraghandle当用户在控件上单击鼠标并开始拖动时触发该事件BeginLabelEdithandle当文本标签处于编辑状态并开始进行编辑时触发该事件BeginRightDraghandle当用户在控件上单击鼠标右键并开始拖动控件时触发该事件Clickedhandle当用户点击控件时触发Constructor没有当控件创建时触发。触发时机应该是包含控件的窗口打开之前DeleteItemhandle当删除项目时触发Destructor没有当控件删除时触发。触发时机应该是在包含控件的窗口关闭时DoubleClickedhandle当用户双击控件时触发DragDropsource ,handle当用户拖动一个对象到控件上并且松开鼠标时触发DragEntersource当用户拖动一个其他对象进入控件时触发DragLeavesource当用户拖动一个其他对象离开控件时触发DragWithinsource,handle当用户拖动一个其他对象在控件中移动时触发EndLabelEdithandle,newtext当用户结束标签的文本编辑时触发GetFocus 没有控件获得焦点时触发。触发该事件时控件还没有激活Help Xpos、Ypos当用户点击F1按钮或者其他方式要获取帮助时触发ItemCollapsedhandle当控件的项目折叠后触发ItemCollapsinghandle当控件中的项目正在折叠时触发ItemExpandedhandle当控件的项目展开后触发ItemExpandinghandle当控件的项目正在展开时触发ItemPopulatehandle当控件中的项目正在打开其子项目时触发Keykey,keyflag当用户点击一个按钮时触发LoseFocus没有控件失去焦点时触发。该事件触发时控件还是可用的Otherwparm,lparm当出现其他没有映射到PB消息上的消息时触发该事件RightClickedhandle当用户在控件上点击鼠标右键时触发该事件RightDoubleClickedhandle当用户在控件上双击鼠标右键时触发该事件SelectionChangedoldhandle,newhandle某项目被选中时触发SelectionChangingoldhandle,newhandle某项目被选中之前触发Sorthandle1,handle2当控件被排序时每次比较都触发该事件【函数】AddPicture向TreeView控件中添加图标或者位图。该函数的语法格式为controlname.AddPicture ( picturename )。AddStatePicture向TreeView控件的状态图标列表中添加指定的位图或者图标。该函数的语法是controlname.AddStatePicture ( picturename )。DeleteItem将TreeView控件中指定的项目及其子项目(如果有的话)都删除。函数的语法是treeviewname.DeleteItem ( itemhandle ),其中itemhandle保存的是项目的惟一句柄,在该控件的很多事件中都有handle这个参数,可以直接使用,也可以使用其他函数首先读取句柄。DeletePicture(s)删除控件中指定索引号的图片,函数格式为controlname.DeletePicture ( index )。函数controlname.DeletePictures( )用来删除控件中所有的图片。DeleteStatePicture(s)删除控件中指定索引号的状态图标,函数的格式是controlname.DeleteStatePicture ( index )。函数controlname.DeleteStatePictures ( )用来删除控件中所有的状态图标。EditLabel该函数的语法是treeviewname.EditLabel ( itemhandle ),作用是将句柄为itemhandle的项目的标签置为编辑状态。ExpandAll该函数的语法是treeviewname.ExpandAll ( itemhandle ),作用是将句柄为itemhandle的项目下的所有子项目展开。展开控件中的所有项目,可以对根级项目使用该函数。ExpandItem函数的语法是treeviewname.ExpandItem ( itemhandle ),作用是展开句柄为itemhandle的项目。该函数ExpandItem仅展开指定的项目,而不像ExpandAll那样展开指定项目的所有子项目。FindItem语法是treeviewname.FindItem(navigationcode,itemhandle),作用是查找和Itemhandle项目的相对位置为navigationcode指定模式的项目。参数navigationcode是一个枚举型变量,可用的取值如下所示。取 值 含 义RootTreeItem! 查找第一个根级项目,如果控件中还没有添加任何项目则返回-1NextTreeItem! 查找处于同一级别的下一个项目,如果没有下一个项目则返回-1PreviousTreeItem! 查找处于同一个级别的前一个项目,如果没有前一个项目则返回-1ParentTreeItem! 查找父项目的句柄,如果是根项目则返回-1ChildTreeItem! 查找第一个子项目,如果项目是折叠的,则将项目置为打开状态。 如果没有子项目则返回-1FirstVisibleTreeItem! 查找控件中第一个可视项目,注意滚动条距顶可视项目的位置NextVisibleTreeItem! 查找下一个展开项目,如果下一个展开项目在控件的 可视项目的位置PreviousVisibleTreeItem!查找前一个展开的项目CurrentTreeItem! 查找当前选中的项目。如果当前没有选中的任何项目则返回-1DropHighLightTreeItem! 查找最近被设置了DropHightLighted属性的项目灵活运用如上所列的取值,可以很轻松地遍历TreeView中的所有项目。GetItem函数语法是treeviewname.GetItem ( itemhandle, item),作用是将句柄由参数itemhandle指定的项目的数据检索到TreeViewItem结构的参数item中。InsertItem函数语法是treeviewname.InsertItem(handleparent,handleafter,label, pictureindex ),作用是将标签为label的项目插入到控件中,插入位置在handleparent指定句柄的项目之下作为它的子项目,句柄为handleafter同级项目的后面。该函数还有另外一种语法格式是treeviewname.InsertItem ( handleparent, handleafter, item ),作用是将TreeViewitem类型的变量item指定的项目插入到控件的指定位置,另外两个参数的含义和前面完全相同。InsertItemFirsttreeviewname.InsertItemFirst (handleparent,label,pictureindex )或者treeviewname.InsertItemFirst ( handleparent, item )都可以。前面一种语法中,插入的项目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论