更新时间:2024-03-30 10:21
ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:1.大(标准)图标2.小图标3.列表4.报表 View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。
ListView控件包括ListItem和ColumnHeader对象。ListItem对象定义ListView控件中项目的各种特性,诸如项目的简要描述、由ImageList控件提供的与项目一起出现的图标和附加的文本片段(称作子项目,它们与显示在报表视图中的ListItem对象关联)。
下面按字母顺序列出了ListView控件的所有属性,可以按Ctrl+F查找。
AllowColumnReorder属性:返回或设置一个值,决定用户是否可以用鼠标对列进行重新排列。
语法:Object.AllowColumnReorder [ = Boolean]
Appearance属性:返回或设置对象的绘图风格,在运行时是只读的。
语法:Object.Appearance
Arrange属性:返回或设置一个值,此值决定如何排列ListView控件中的图标或小图标视图。
语法:Object.Arrange [ = Value]
BackColor属性:返回或设置对象的背景颜色。
语法:Object.BackColor [ = Color]
BorderStyle属性:返回或设置对象的边框样式。0表示无边框,1表示有边框。
语法:Object.BorderStyle [ = Value]
CheckBoxes属性:返回或设置一个值,确定是否显示复选框。
语法:Object.Checkboxes [ = Boolean]
ColumnHeaderIcons属性:返回或者设置Imagelist控件,该控件为ColumnHeaders集合提供图标。
语法:Object.ColumnHeaderIcons [ = ImageList]
ColumnHeaders属性:返回ColumnHeader对象集合的引用。
语法:Object.ColumnHeaders
Container属性:返回或设置Form上控件的容器。在设计时不能使用。
语法:Set Object.Container [ = Container]
DragIcon属性:返回或设置图标,它将在拖放操作中作为指针显示。
语法:Object.DragIcon [ = Icon]
DragMode属性:返回或设置一个值,确定在拖放操作中所用的是手动还是自动拖动方式。
语法:Object.DragMode [ = Number]
DropHighlight属性:返回或设置对Node或ListItem对象的引用,在光标移动到该对象上时,它就被突出显示为系统的突出颜色。
语法:Object.DropHighlight [ = Node / ListItem]
Enabled属性:返回或设置一个值,用来决定窗体或控件是否能够对用户产生的事件作出反应。
语法:Object.Enabled [ = Boolean]
FlatScrollBar属性:返回或设置一个值,确定对象中滚动条的外观。
语法:Object.FlatScrollBar [ = Boolean]
Font属性:返回一个Font对象。
语法:Object.Font
ForeColor属性:返回或设置在对象里显示图片和文本的前景颜色。
语法:Object.ForeColor [ = Color]
FullRowSelect属性:返回或设置一个值,决定是否选择整行。
语法:Object.FullRowSelect [ = Boolean]
GridLines属性:返回或设置一个值,决定在报表视图中ListView控件是否显示网格线。
语法:Object.GridLines [ = Boolean]
Height属性:返回或设置对象的高度。
语法:Object.Height [ = Number]
HelpContextID属性:为一个对象返回或设置一个相关联上下文的编号。它被用来为应用程序提供上下文有关的帮助。
语法:Object.HelpContextID [ = Number]
HideColumnHeaders属性:返回或设置是否在报表视图中隐藏ListView控件的ColumnHeader对象。
语法:Object.HideColumnHeaders [ = Boolean]
HideSelection属性:返回一个值,以决定当控件失去焦点时选择文本是否加亮显示。
语法:Object.HideSelection
HotTracking属性:该属性的返回值确定是否使用灵敏的鼠标高亮度显示功能。
语法:Object.HotTracking
HoverSelection属性:返回或设置一个值,确定当鼠标指针在ListItem对象上停留时,对象是否被选中。
语法:Object.HoverSelection [ = Boolean]
hWnd属性:返回窗体或控件的句柄。
语法:Object.hWnd
Icons属性:返回或设置与ListView控件中图标视图关联的ImageList控件。
语法:Object.Icons [ = Imagelist]
Index属性:返回控件在控件数组中的标识号。
语法:Object.Index
LabelEdit属性:返回或设置一个值,决定是否可以编辑在控件中的ListItem对象的标签。
语法:Object.LabelEdit [ = Integer]
LabelWrap属性:返回或设置一个值,此值决定当ListView控件为图标视图时标签是否可换行。
语法:Object.LabelWrap [ = Boolean]
Left属性:返回或设置对象内部的左边与它的容器的左边之间的距离。
语法:Object.Left [ = Value]
ListItems属性:返回控件中ListItem对象集合的引用。
语法:Object.ListItems
MouseIcon属性:返回或设置自定义的鼠标图标。
语法:Object.MouseIcon = LoadPicture(Pathname)或Object.MouseIcon [ = Picture]
MousePointer属性:返回或设置一个值,该值指示在运行时当鼠标移动到对象的一个特定部分时,被显示的鼠标指针的类型。
语法:Object.MousePointer [ = Value]
MultiSelect属性:返回或设置用户是否可以在控件中做多重选择。
语法:Object.MultiSelect [ = Boolean]
Name属性:返回用于标识控件的名字,在运行时是只读的。
语法:
Object属性:返回对象与对象的方法或属性的设置。
语法:Object.Object [.Property | .Method]
OLEDragMode属性:返回或设置是由部件还是由程序员来处理OLE拖放操作。
语法:Object.OLEDragMode [ = Mode]
OLEDropMode属性:返回或设置目标部件如何处理放操作。
语法:Object.OLEDropMode [ = Mode]
Parent属性:返回包含控件、或其它对象或者集合的窗体、对象、或集合。
语法:Object.Parent
Picture属性:返回或设置控件中要显示的图片。
语法:Object.Picture [ = Picture]
PictureAlignment属性:返回或设置一个值,确定对象中图片的对齐方式。
语法:Object.PictureAlignment [ = Integer]
SelectedItem属性:返回对所选ListItem的引用。
语法:Object.SelectedItem
SmallIcons属性:返回或设置与ListView控件中小图标视图关联的ImageList控件。
语法:Object.SmallIcons[ = Imagelist]
Sorted属性:返回或设置集合中的项目是否排序。
语法:Object.Sorted [ = Boolean]
SortKey属性:返回或设置一个值,决定控件中的ListItem对象如何排序。
语法:Object.SortKey [ = Integer]
SortOrder属性:返回或设置一个值,此值决定控件中的ListItem对象以升序或降序排列。
语法:Object.SortOrder [ = Integer]
TabIndex属性:返回或设置父窗体中控件的Tab键次序。
语法:Object.TabIndex [ = Index]
TabStop属性:返回或设置一个值,决定是否能够使用Tab键来将焦点移至该控件。
语法:Object.TabStop [ = Boolean]
Tag属性:返回或设置一个表达式用来存储程序中需要的额外数据。
语法:Object.Tag [ = Expression]
TextBackground属性:返回或设置ListItem对象的背景是透明的还是不透明的。
语法:Object.TextBackground [ = Integer]
ToolTipText属性:返回或设置一个工具提示。
语法:Object.ToolTipText [ = String]
Top属性:返回或设置对象的内顶部和它的容器的顶边之间的距离。
语法:Object.Top [ = Value]
View属性:返回或设置控件中ListItem对象的外观。
语法:Object.View [ = Value]
Width属性:返回或设置对象的宽度。
语法:Object.Width [ = Number]
用于控件的开始、结束或取消拖动操作。不支持命名参数。
语法:Object.Drag Action
查找并返回 ListView 控件中 ListItem 对象的引用。
语法:Object.FindItem (String, Value, Index, Match)
返回控件内部区域中第一个可视对象的引用。
语法:Object.GetFirstVisible( )
返回对位于x和y坐标的ListItem对象或Node对象的引用。通常与拖放操作一起使用,来确定放下的目标项在当前位置是否可用。
语法:Object.HitTest (x As Single, y As Single)
用以移动控件。不支持命名参数。
语法:Object.Move Left, Top, Width, Height
引起部件初始化OLE拖放操作。
语法:Object.OLEDrag
强制全部重绘一个窗体或控件。
语法:Object.Refresh
将焦点移至指定的控件或窗体。
语法:Object.SetFocus
提供“这是什么”弹出式窗口使用的帮助文件中选定的一个主题。
语法:Object.ShowWhatsThis
允许用户编辑标签。
语法:Object.StartLabelEdit
将控件放置在其图层的上下顺序的前端或后端。不支持命名参数。
语法:Object.ZOrder Position
添加ListItem对象到ListView控件的ListItems集合中并返回新创建对象的引用。
语法:Object.Add(Index, Key, Text, Icon, SmallIcon)
删除集合中的全部对象。
语法:Object.Clear
AfterLabelEdit事件:在编辑当前被选中的ListItem对象的标签之后该事件发生。
语法:Private Sub Object_AfterLabelEdit(Cancel As Integer, Cewstring As String)
BeforeLabelEdit事件:当试图编辑当前被选中的ListItem对象的标签时该事件发生。
语法:Private Sub Object_BeforeLabelEdit(Cancel As Integer)
Click事件:在控件上按下然后释放一个鼠标按钮时发生。
语法:Private Sub Object_Click [(Index As Integer)]
ColumnClick事件:单击控件中的ColumnHeader对象时,该事件发生。仅当控件的View属性为报表视图时可用。
语法:Private Sub Object_ColumnClick(ByVal ColumnHeader As ColumnHeader)
DblClick事件:当在控件上双击时,该事件发生。
语法:Private Sub Object_DblClick [(Index As Integer)]
DragDrop事件:在一个完整的拖放动作(即将一个控件拖动到一个对象上,并释放鼠标按钮)完成,或使用Drag方法,并将其Action参数被设置为2(Drop)时,该事件发生。
语法:Private Sub Object_DragDrop([Index As Integer, ] Source As Control, x As Single, y As Single)
DragOver事件:它在拖放操作正在进行时发生。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。鼠标指针的位置决定接收此事件的目标对象。当State=0表示控件正被向一个目标范围内拖动;State=1表示控件正被向一个目标范围外拖动;State=2表示控件在目标范围内从一个位置移到了另一位置。
语法:Private Sub Object_DragOver([Index As Integer, ] Source As Control, x As Single, y As Single, State As Integer)
GotFocus事件:当对象获得焦点时产生该事件;获得焦点可以通过诸如Tab键切换,或单击对象之类的用户动作,或在代码中用SetFocus方法改变焦点来实现。
语法:Private Sub Object_GotFocus [(Index As Integer)]
ItemClick事件:单击控件中ListItem对象时事件发生。
语法:Private Sub Object_ItemClick(ByVal Item As ListItem)
KeyDown事件:对象具有焦点并按下一个键时发生。
语法:Private Sub Object_KeyDown([Index As Integer, ] Keycode As Integer, Shift As Integer)
KeyPress事件:对象具有焦点并按下或松开一个键时发生。
语法:Private Sub Object_KeyPress([Index As Integer, ] KeyAscii As Integer)
KeyUp事件:对象具有焦点并松开一个键时发生。
语法:Private Sub Object_KeyUp([Index As Integer, ] Keycode As Integer, Shift As Integer)
LostFocus事件:此事件是在一个对象失去焦点时发生,焦点的丢失可以是由于制表键移动或单击另一个对象操作的结果,或是代码中使用SetFocus方法改变焦点的结果。
语法:Private Sub Object_LostFocus [(Index As Integer)]
MouseDown事件:当按下鼠标按钮时发生。
语法:Private Sub Object_MouseDown([Index As Integer, ] Button As Integer, Shift As Integer, x As Single, y As Single)
MouseMove事件:当移动鼠标时发生。
语法:Private Sub Object_MouseMove([Index As Integer, ] Button As Integer, Shift As Integer, x As Single, y As Single)
MouseUp事件:当释放鼠标按钮时发生。
Private Sub Object _MouseUp([Index As Integer, ] Button As Integer, Shift As Integer, x As Single, y As Single)
OLECompleteDrag事件:当源部件被放到目标部件时发生,并通知源部件拖放操作被执行或取消。
语法:Private Sub Object_OLECompleteDrag [(Effect As Long)]
OLEDragDrop事件:当源部件决定放操作能发生,且源部件被放到目标部件时,此事件发生。
语法:Private Sub Object_OLEDragDrop(Data As DataObject, effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
OLEDragOver事件:当一个部件在另一个部件上拖动时发生。
语法:Private Sub Object_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single, State As Integer)
OLEGiveFeedback事件:在每个OLEDragOver事件后发生
语法:Private Sub Object_OLEGiveFeedback(Effect As Long,DefaultCursors As Boolean)
OLESetData事件:当目标部件在源的DataObject对象上执行GetData方法,但是还没有加载规定格式的数据之前,在源部件上发生。
语法:Private Sub Object_OLESetData(Data As DataObject, Dataformat As Integer)
OLEStartDrag事件:当部件的OLEDrag方法被执行时,或者在OLEDragMode属性被设为Automatic,部件初始化OLE拖放操作时发生。
语法:Private Sub Object_OLEStartDrag(Data As DataObject, Allowedeffects As Long)
Validate事件:在焦点转换到一个控件之前发生,此时该控件的CausesValidation属性值设置为True。
语法:Private Sub Object_Validate(KeepFocus As Boolean)
下面的示例使用Biblio.mdb数据库作为资源,通过ListItem对象移居ListView控件。要试用此例,请将一个ListView控件放置在窗体上,并将代码粘贴到窗体的声明部分。
还必须确保已将Biblio.mdb安装在机器上。在以下代码中检查OpenDatabase函数中的路径,并改变它,使之反映Biblio.mdb在机器上的实际路径。
注意:除非添加到Microsoft DAO 3.5对象库的“引用”,否则示例无法运行。为此,在Project菜单上单击 References。搜索Microsoft DAO 3.5对象库并单击复选框来选择。
Private Sub Form_Load( )
'添加 ColumnHeaders。列宽度等于控件宽度
'除以 ColumnHeader 对象的数目。
ListView1.ColumnHeaders. _
ListView1.ColumnHeaders. _
lvwColumnCenter
ListView1.ColumnHeaders. _
' Set View property to Report.
ListView1.View = lvwReport
'为数据访问对象声明对象变量。
Dim myDb As Database, myRs As Recordset
'设置 Database 为 BIBLIO.MDB 数据库。
' IMPORTANT: the Biblio.mdb must be on your
' machine, and you must set the correct path to
' the file in the OpenDatabase function below.
Set myDb = DBEngine.Workspaces(0) _
Set myRs = _
'声明变量以添加 ListItem 对象。
Dim itmX As ListItem
'若当前记录不是最后一条记录,则添加一个 ListItem 对象。
'ListItem 对象的文本使用 author 字段。
'ListItem 对象的 SubItem(1) 使用 AuthorID 字段。
While Not myRs.EOF
Set itmX = ListView1.ListItems. _
Add(, , CStr(myRs!Author),1) 'Author 字段。
'若 AuthorID 字段不为空,则将 SubItem 1 设置为此字段。
If Not IsNull(myRs!Au_id) Then
itmX.SubItems(1) = CStr(myRs!Au_id) ' Author ID。
End If
'若 birth 字段不为空,则将 SubItem 2 设置为此字段。
If Not IsNull(myRs![Year Born]) Then
itmX.SubItems(2) = myRs![Year Born]
End If
myRs.MoveNext '移动到下一条记录。
Wend
End Sub
ListItem包含文本和相关图标(ListImage对象)的索引,除此之外,当它为报表视图时,ListItem还包含代表子项目的字符串数组。
ListItems集合包含一个或多个ListItem对象。根据标准的集合语法,可以用ListView.ListItems引用集合,而ListView.ListItems(Index)引用集合中的单个元素。其中的Index指示该ListItem的显示位置。
说明:
ListItem对象可包含文本和图片。然而,若要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件。
也可使用Icon或SmallIcon属性变更图像。
下列示例说明了如何将ColumnHeaders对象和若干带有子项目的ListItem对象添加到ListView控件中。
Private Sub Form_Load( )
Dim clmX As ColumnHeader
Dim itmX As ListItem
Dim i As Integer
For i = 1 To 3
Set clmX = ListView1.ColumnHeaders.Add( )
Next i
'添加 10 个具有相同图标的项目到列表中
For i = 1 To 10
Set itmX = ListView1.ListItems.Add( )
itmX.SmallIcon = 1
Next i
End Sub