ListView控件

更新时间:2024-03-30 10:21

ListView 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:1.大(标准)图标2.小图标3.列表4.报表 View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。

内容特性

ListView控件包括ListItem和ColumnHeader对象。ListItem对象定义ListView控件中项目的各种特性,诸如项目的简要描述、由ImageList控件提供的与项目一起出现的图标和附加的文本片段(称作子项目,它们与显示在报表视图中的ListItem对象关联)。

属性

下面按字母顺序列出了ListView控件的所有属性,可以按Ctrl+F查找。

A~G

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]

H~N

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属性:返回用于标识控件的名字,在运行时是只读的。

语法:

O~U

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]

V~Z

View属性:返回或设置控件中ListItem对象的外观。

语法:Object.View [ = Value]

Width属性:返回或设置对象的宽度。

语法:Object.Width [ = Number]

解决思路

Drag方法

用于控件的开始、结束或取消拖动操作。不支持命名参数。

语法:Object.Drag Action

FindItem方法

查找并返回 ListView 控件中 ListItem 对象的引用。

语法:Object.FindItem (String, Value, Index, Match)

GetFirst

返回控件内部区域中第一个可视对象的引用。

语法:Object.GetFirstVisible( )

HitTest方法

返回对位于x和y坐标的ListItem对象或Node对象的引用。通常与拖放操作一起使用,来确定放下的目标项在当前位置是否可用。

语法:Object.HitTest (x As Single, y As Single)

Move方式

用以移动控件。不支持命名参数。

语法:Object.Move Left, Top, Width, Height

OLEDrag

引起部件初始化OLE拖放操作。

语法:Object.OLEDrag

Refresh方法

强制全部重绘一个窗体或控件。

语法:Object.Refresh

SetFocus方法

将焦点移至指定的控件或窗体。

语法:Object.SetFocus

这是什么

提供“这是什么”弹出式窗口使用的帮助文件中选定的一个主题。

语法:Object.ShowWhatsThis

StartLabel

允许用户编辑标签。

语法:Object.StartLabelEdit

常用办法

ZOrder方法

将控件放置在其图层的上下顺序的前端或后端。不支持命名参数。

语法:Object.ZOrder Position

ListItems.

添加ListItem对象到ListView控件的ListItems集合中并返回新创建对象的引用。

语法:Object.Add(Index, Key, Text, Icon, SmallIcon)

ListItems

删除集合中的全部对象。

语法:Object.Clear

事件

A~G

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)]

H~N

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)

O~U

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)

V~Z

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

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}