Delphi TlistView功能及常用属性介绍
1、TlistView功能介绍:
- TListView 控件可以用来显示各项带图标的列表,包括大图标和小图标的;也可以用来显示带有子项的列表,Windows操作系统的资源管理器中文件夹窗口就是最好的应用例子,打开"我的电脑"后能够看到各个盘符的界面
- TListView控件基本能实现和DBGrid控件一样的功能,很多时候根据程序需要可以完全用TListView来替换DBGrid;只要将TListView的ViewStyle属性设为vsReport,然后再配合其他几个属性(这个稍后说明),就可以实现DBGrid中的绑定数据库、数据添加、修改、删除、不同列的不同颜色显示及单击标题排序等等一系列常用的功能;
2、TListView 常用属性
(1)BoundingRect 属性:此属性返回一个能把列表视图中所有项包住的矩形。此属性仅在ViewStyle 属性设为vsIcon 或vsSmallIcon 时有效。
(2)CheckBoxed 属性:当ViewStyle 属性设为vsList 或vsReport 时,如果把CheckBoxes 属性设为True,列表视图中项的旁边将显示复选框,如同TCheckListBox 组件一样。
(3)Column 属性:此属性可以访问列表视图中每一栏,Index 指定栏的序号。此属性仅当ViewStyle 属性设为vsReport时有效。
(4)ColumnClick 属性:如果此属性设为True,栏的表头(如果有的话)将同时作为按钮用,按下这些按钮,将触发OnColumnClick 事件,通常用于对列表视图中的项进行重新排序。
(5)Columns 属性:如果ViewStyle 属性设为vsReport,列表视图的每一项将分成多栏,每一栏都是一个TListColumn对象,所有的栏构成TListColumn 对象。在设计期,可以单击Columns 属性旁的省略号"…"按钮打开"Editing Columns"窗口,然后建立和编辑栏的属性。例如:
ListView1.Columns.Items[0].Caption:= ‘列1‘;
ListView1.Columns.Items[1].Caption:= ‘列2‘;//添加列
ListView1.Columns.Items[2].Caption:= ‘列3‘;
ListView1.Columns.Items[2].Width:=300; //这里设定列的宽度
(6)HideSelection 属性:如果此属性设为True,当输入焦点从列表视图移到其他组件上时,原先选择的节点将不再处于被选择状态。如果此属性设为False,当输入焦点移走时仍然保持选择状态。
(7)ItemFocused 属性:此属性指定或返回列表视图中具有输入焦点的项。一个列表视图中可以同时有多个项被选择,但只能有一个项具有输入焦点。
(8)Items 属性:此属性代表列表视图中的所有项。列表视图中的每一项是一个TListItem 对象。在设计期,可以按下Items 属性旁的"..."按钮打开"ListView Items"编辑器,然后建立和编辑列表视图中的每一项.
(9)MultiSelect 属性:如果此属性设为True,用户可以同时选择多个项。
(10)RowSelect 属性:在ViewStyle 属性设为vsReport 的前提下,如果把此属性设为True,用户可以一次选择一整行。
(11)Selected 属性:此属性用于设置返回列表视图中被选择的项。如果有多项被选择,返回的是当前有输入焦点的项。
(12)ShowWorkAreas 属性:在ViewStyle 属性设为vsIcon 或vsSmallIcon 的情况下,通过定义工作区,可以把图标分组,如果ShowWorkAreas 属性设为True,列表视图将把客户区分成几个工作区,每个工作区的颜色由TWorkArea的Color 属性指定,标签由TWorkArea 的DisplayName 属性指定。
(13)SortType 属性:此属性用于设置什么情况下列表视图中的项将重新排列。它设定了如下4 个用户可选值。
- stNone:不重新排序。
- stData:项的Data 属性发生变化时重新排序。
- stText:项的Caption 属性发生变化时重新排序。
- stBoth:项的Data 属性或Caption 属性发生变化时重新排序。
(14)ViewStyle 属性:ListView 控件作为一个可以显示图标或者子项的列表控件,它最重要的属性就是 ViewStyle 属性,该属性决定了以哪种视图模式显示控件的项,这四种视图模式分别如下:
- 1. vsIcon:大图标视图模式,在项的文本旁显示大的图标,在控件宽度足够的情况下,项是优先以平行排列的,排列不完的则自动换行显示在新行中。这个属性要和TListView的LargeImages属性一起使用;
- 2. vsSmallIcon:小图标视图模式,与大图标模式一样,但是显示的是小的图标;要和TListView的SmallImages属性一起使用;
- 3. vsList:列表视图模式,可以显示小图标,但是项是垂直排列的,只显示单列,不能进行拖放操作;
- 4. vsReport:详细资料视图模式,是最丰富的选项,可以基本实现DBGrid的所有功能;它不但允许您查看项,还允许您查看为各项指定的任何子项。各项在网格中显示,它们垂直排列且其子项会显示在列中(带有列标头)。对应地,只有在Details 视图模式中起作用的控件属性为:GridLines 和 FullRowSelect,GridLines 属性指示在包含控件中项及其子项的行和列之间是否显示网格线。FullRowSelect 属性指示单击某项是否选择其所有子项(即整行选中)
3、TListView 事件
(1)OnColumnClick 事件:当用户单击栏的表头时,将触发该事件。这样就可以对项进行排序。在OnColumnClick 事件中有一个TListColumn 类型的参数Column,此参数返回用户单击的栏,利用Column 参数可以对用户选中的栏进行访问及设置。
(2)OnColumnDragged 事件:当用户用鼠标左键拖动某一栏到一个新的位置时,将触发该事件。在使用此事件之前必须将TListView 组件的FullTrag 属性设置为True,表示可以拖动栏的位置,否则不能拖动,也就不能触发此事件。
(3)OnEdited 事件:当用户直接编辑修改了项的标签后,将触发该事件。OnEdited 事件中有一个TListItem 类型的参数Item,利用此参数可以对用户编辑的项进行访问;OnEdited 事件中还有一个String 类型的参数S,它是用户更改项的标签后,显示标签的内容。
(4)OnInfoTip 事件:通过这个事件可以为列表视图中的每一项加上提示。OnInfoTip 事件中有一个TListItem 类型的参数Item,利用此参数可以对用户编辑的项进行访问;OnInfoTip 事件中还有一个String 类型的参数InfoTip,更改它的值就可以为每一项加上提示。例如将每一项的提示设置为项的标签内容,就可以在OnInfoTip 事件中添加如下代码:InfoTip:=Item.Caption;如果要显示提示信息,必须将TListView 组件的ShowHind 属性设置为True。
(5)OnSelectItem 事件:当列表视图中一个项被选择时,将触发这个事件。OnSelectItem 事件中有一个TListItem 类型的参数Item,利用此参数可以对用户编辑的项进行访问;OnSelectItem 事件中还有一个Boolean 类型的参数Selected。每次选择一个新项时将两次触发此事件,一次是释放以前被选择的项,Selected 参数取值为False,代表释放Item 参数指定的项;另外一次是选择新的项,Selected 参数取值为True,代表选择Item 参数指定的项。
4、TListView 常用的方法
(1)AlphaSort 方法:此方法可以将列表视图中的项按标签的字母顺序排序。例如使用下面的代码就能够将ListView1组件的项按标签的字母顺序排序:ListView1.AlphaSort;
(2)Arrange 方法:此方法用于重排图标。Arrange 方法只有在ViewStyle 属性为vsIcon 或vsSmallIcon 时才起作用。
Arrange 方法中有一个TListArrangement 类型的参数Code,此参数用于指定图标的排列方式,其取值及功能如下。
- arAlignBottom:图标底部对齐排列。
- arAlignLeft:图标左侧对齐排列。
- arAlignRight:图标右侧对齐排列。
- arAlignTop:图标顶部对齐排列。
- arDefault:按照窗口刚建立时的风格将图标从顶部排列。
- arSnapToGrid:将图标对齐到最近的网格,此值不支持虚拟模式。
(3)FindCaption 方法:此方法的调用可以搜索并返回一个TListItem 类型的项。FindCaption 方法中有5 个参数,功能如下。
- StartIndex:Integer 类型,用于指定开始搜索的起始位置。
- Value:String 类型,指定要搜索的项的标题符合的内容。
- Partial:Boolean 类型,取True 值,查找标题开头为Value 参数指定的项;取False 值,查找标题与Value 参数指定的内容相同的项。
- Inclusive:Boolean 类型,取True 值,被StartIndex 指定的项是第1 个被选中的;取False 值,开始查找的位置从StartIndex 拟定的下一个位置开始。
- Warp:Boolean 类型,取True 值,搜索将从开始找到最后;取False 值,搜索从StartIndex 位开始查找,找到最后。
FindCaption 方法返回的是第1 个被找到的符合条件的项,如果没找到符合条件的,则返回列表中的第1 项。
(4)Scroll 方法:此方法可以使列表视图滚动。Scroll 方法有两个Integer 类型的参数。
- DX:控制视图的左右一次移动的像素数,正数代表向右移动,负数代表向左移动。
- DY:控制视图的上下一次移动的像素数,正数代表向下移动,负数代表向上移动。
(5)StringWidth 方法:此方法用于返回字符串的宽度。StringWidth 方法中用到一个String 类型的参数S,StringWidth 方法是根据当前TListView 组件的字体、字号返回参数S 指定的字符串宽度的像素数。
(6)UpdateItems 方法:此方法可以重画指定范围内的项。UpdateItems 有两个Integer 类型的参数:
- FirstIndex:用于指定重画项的开始位置。
- LastIndex:用于指定重画项的最后位置。
创建时间:2020.03.20 更新时间: