vblistview控件用法Word格式.docx
《vblistview控件用法Word格式.docx》由会员分享,可在线阅读,更多相关《vblistview控件用法Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
使用index参数在ColumnHeaders集合的特定位置插入列标头。
当ColumnHeaders集合成员可能动态变更时,应使用Key属性引用它们,因为任何ColumnHeader对象的Index属性都可以改变。
示例:
ListView1.ListItems.Clear
'
清空列表
ListView1.ColumnHeaders.Clear
清空列表头
ListView1.View=lvwReport
设置列表显示方式
ListView1.GridLines=True
显示网络线
ListView1.LabelEdit=lvwManual
禁止标签编辑
ListView1.FullRowSelect=True
选择整行
ListView1.ColumnHeaders.Add,,"
ID"
500'
给列表中添加列名
本地IP"
1500
本地端口"
900
协议"
550
远程IP"
远程端口"
当前状态"
连接时间"
-------------------------------------------------------
DimX
X=ListView1.ListItems.Count+1
ListView1.ListItems.Add,,X
ListView1.ListItems(X).SubItems
(1)="
00:
00"
ListView1.ListItems(X).SubItems
(2)="
2008-01-01"
ListView1.ListItems(X).SubItems(3)="
(无)"
ListView1.ListItems.Add,,"
1"
ListView1.ListItems
(1).SubItems
(1)="
ListView1.ListItems
(1).SubItems
(2)="
ListView1.ListItems
(1).SubItems(3)="
2"
ListView1.ListItems
(2).SubItems
(1)="
01"
ListView1.ListItems
(2).SubItems
(2)="
ListView1.ListItems
(2).SubItems(3)="
设置显示方式为列表
ListView1.AllowColumnReorder=True
对行进行程序排列,用鼠标进行排列
ListView1.Arrange=lvwAutoLeft
图标横排列
ListView1.Arrange=lvwAutoTop
图标竖排列
ListView1.FlatScrollBar=False
显示滚动条
ListView1.FlatScrollBar=True
隐藏滚动条
ListView1.LabelWrap=True
图标可以换行
ListView1.MultiSelect=True
可以选择多个项目
ListView1.PictureAlignment=lvwTopLeft'
图片对齐方式是左顶部,其他有右顶部
(1)、左底部
(2)、右底部(3)、居中(4)、平铺(5)
ListView1.Checkboxes=True
显示复选框
ListView1.DropHighlight=ListView1:
ListItems.Item
(2)
显示系统颜色
获取当前行数和列数:
MsgBox"
行数:
"
&
ListView1.ListItems.Count&
"
列数:
ListView1.ColumnHeaders.Count
PrivateSubListView1_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
ListView1.ToolTipText="
ListView1.ColumnHeaders.Count
EndSub
设置宽度:
备注"
1500
当前选中行:
msgboxListView1.SelectedItem.index
获取复选框的值:
msgboxListView1.ListItems
(1).Checked
删除指定行:
ListView1.ListItems.Remove1
去掉鼠标左键点击标签编辑:
labeledit属性改为1
读取某行第一列内容:
ListView1.ListItems(i).Text
读取某行第几列内容(不包括第一列):
ListView1.ListItems(Num).SubItems(4)
读取当前选中行第一列内容:
ListView1.ListItems(ListView1.SelectedItem.Index).Text
循环查找读取项目:
DimiAsInteger
Fori=1ToListView1.ListItems.Count
IfListView1.ListItems(i).Text=4ThenMsgBoxListView1.ListItems(i).Text'
第一列
IfListView1.ListItems(i).SubItems
(1)=4ThenMsgBoxListView1.ListItems(i).SubItems
(1)'
第二列
Nexti
清空列表头:
ListView1.ColumnHeaders.Clear
清空列表:
ListView1.ListItems.Clear
右键菜单:
PrivateSubListView1_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)
IfButton=vbRightButtonThenPopupMenuCommandLst'
按下鼠标右键显示菜单
EndSub
当前选中判断:
DimN
IfListView1.ListItems.Count<
>
0ThenN=ListView1.SelectedItem.IndexElseMsgBox"
当前没有任何主机在线!
vbInformation,"
警告:
:
ExitSub
IfN<
1ThenMsgBox"
你没有选中任何主机!
VB设置某行为选中/非选中状态:
ListView.ListItems(i).Selected=True'
选中第i行
ListView.ListItems(i).Selected=False'
一、View属性
ListView控件作为一个可以显示图标或者子项的列表控件,它最重要的属性就是View属性,该属性决定了以哪种视图模式显示控件的项,这四种视图模式分别如下:
[art_myurl]
1、LartIcon:
大图标视图模式,在项的文本旁显示大的图标,在控件宽度足够的情况下,项是如图一中的盘符一样优先以平行排列的,排列不完的则自动换行显示在新行中。
2、SmallIcon:
小图标视图模式,与大图标模式一样,但是显示的是小的图标。
3、List:
列表视图模式,显示小图标,但是项是垂直排列的,只显示单列。
4、Details:
详细资料视图模式,是最丰富的选项,它不但允许您查看项,还允许您查看为各项指定的任何子项。
各项在网格中显示,它们垂直排列且其子项会显示在列中(带有列标头)。
对应地,只有在Details视图模式中起作用的控件属性为:
GridLines和FullRowSelect,GridLines属性指示在包含控件中项及其子项的行和列之间是否显示网格线。
FullRowSelect属性指示单击某项是否选择其所有子项(即整行选中),如下图三所示便是GridLines和FullRowSelect属性都设置为True的情况:
图三:
显示网格线与整行选中
延伸阅读:
使用ListView控件显示系统驱动器
上一篇文章我们了解了ListView控件的使用(相关文章:
入门——ListView控件的使用),这里我们就来用ListView控件模仿制作一个Windows操作系统中“我的电脑”中显示的磁盘驱动器信息列表,以加深对ListView控件的印象。
需要了解ListView控件的基本使用。
ListView控件中还有一个HeaderStyle属性也是在Details视图模式下才起作用,HeaderStyle属性指示列标头样式,它有下面三种显示样式:
1、Clickable:
列标头的作用类似于按钮,单击时可以执行操作(例如排序)。
2、Nonclickable:
列标头不响应鼠标单击。
3、None:
列标头在报表视图中不显示。
二、Items属性
此外,ListView控件最重要的属性是Items属性,它包含了控件所有的存在的项。
SelectedItems属性是控件当前选定项的集合,同时和它关联的SelectedIndices属性是控件中选定项的索引集合,如下示例所示,我们分别在SelectedItems属性和SelectedIndices属性中获取所选项索引,窗体上拖放了ListView控件和一个Button控件,且已经往ListView控件中添加了若干列和行,代码如下:
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger=0
DimstrAsString="
Fori=0ToListView1.SelectedItems.Count-1
str=str&
选中项索引="
ListView1.SelectedItems.Item(i).Index.ToString&
;
在控件中的索引="
ListView1.SelectedIndices.Item(i).ToString&
vbCr
Next
MessageBox.Show(str)
运行后显示效果如下图四所示:
图四
两个属性都能获得所选项在控件中的索引,我们在实际应用的时候可以灵活选择使用它们中的一个,以达到简化代码的目的。
三、ListView的其他重要属性
ListView控件还有一些比较常用的重要属性
1、Activation属性
Activation属性指定用户激活ListView控件中的项的方式,它包括三个可选值:
OneClick:
用户必须单击以激活项。
光标更改为手形指针光标,项文本在用户将鼠标指针移动到项上时更改颜色。
Standard:
用户必须双击以激活项。
在用户将鼠标指针移动到项上时没有提供任何反馈。
TwoClick:
用户必须双击以激活项,项文本在用户将鼠标指针移动到项上时更改颜色。
激活ListView中的项与只选择项是不同的。
当激活某个项时,通常会在ItemActivate事件的事件处理程序中执行一个操作。
例如,当激活某个项时,您可能会打开一个文件或显示一个允许用户对项进行编辑的对话框。
通常,项的激活是通过用户对它进行双击来实现的。
如果Activation属性设置为OneClick,那么单击该项一次即可将其激活。
将Activation属性设置为TwoClick与标准的双击不同,这是因为两次单击之间的时间间隔可以是任意的。
注意
如果将Activation属性设置为ItemActivation.OneClick或ItemActivation.TwoClick,则不管LabelEdit属性的值是什么,都不允许进行标签编辑。
设置Activation属性实际上就是决定以何种方式来触发ItemActivate事件,如果我们需要在激活项的时候进行额外的操作,例如弹出一个关联的对话框来,则可以在
ItemActivate事件中编写合适代码来完成,如下代码所示:
PrivateSubListView1_ItemActivate(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesListView1.ItemActivate
MessageBox.Show("
你想做什么"
)'
可以在这里添加我们需要的操作
代码运行后,我们激活选项,如下图五所示:
2、LabelEdit属性
LabelEdit属性指示用户是否可以编辑控件中项的标签。
当LabelEdit属性设置为true时,用户可以单击项文本,将其选中,然后再次单击项文本,将标签文本置于编辑模式,然后,用户可以修改或替换项的文本标签。
在用户编辑项文本之前和之后,您可以使用BeforeLabelEdit和AfterLabelEdit事件来执行任务。
如果该属性设置为true,则无法修改子项的文本。
要更改子项的文本,您可以在用户双击控件中的子项时为其显示对话框。
3、LabelWrap属性
LabelWrap属性指示当项作为图标在控件中显示时,项标签是否换行。
当LabelWrap属性设置为true时,如果需要,项文本会换至文本的下一行。
如果文本长于两行,则文本将缩短。
如果用户选择了该项,则显示所有项文本。
如果LabelWrap属性设置为false,则所有项文本都将显示在单独一行中。
整个项文本在LabelWrap设置为false时显示。
只有在View属性设置为LargeIcon或SmallIcon时才使用该属性。
4、MultiSelect属性
MultiSelect属性指示是否可以选择多个项。
当MultiSelect属性设置为true时,可在ListView控件中选择多个项。
5、Scrollable属性
Scrollable属性指示在没有足够空间来显示所有项时,是否显示滚动条。
6、Sorting属性
Sorting属性指示控件中项的排序顺序。
Sorting属性允许指定项在ListView控件中是否排序。
默认情况下,不执行排序。
当Sorting属性设置为Ascending或Descending时,ListView中的项自动按照升序字母顺序(当属性设置为Ascending时)或降序字母顺序(当属性设置为Descending时)进行排序。
您可以使用该属性对ListView控件中显示的项进行自动排序,使用户在大量项可用时更容易查找到项。
如果您要自己执行对项的排序,而不使用Sorting属性,可与Sort方法一起使用ListViewItemSorter属性。
7、LargeImageList属性
LargeImageList属性设置当项以大图标在控件中显示时使用的ImageList。
8、SmallImageList属性
SmallImageList属性设置当项以小图标在控件中显示时使用的ImageList。
面我们了解了ListView的一些主要属性,下面我们来看如何使用它。
四、向ListView控件添加项
1、我们可以使用ListViewItem集合编辑器来为控件添加项
方法是在ListView控件的属性窗口中选择Items属性。
2、还可以使用ListView控件的Items.Add()方法来为它添加新的项,Add()方法的格式如下:
Add(text,imageIndex)
text为要添加项所显示的文本
imageIndex为可选参数,指示所对应ImageList中的图标索引
示例:
为窗体添加一个ListView控件,一个ImageList控件,一个Button控件,然后在代码编辑器中添加如下代码:
DimmItemAsListViewItem
ListView1.LargeImageList=Me.ImageList1
ListView1.View=View.LargeIcon
Fori=0To3
ListView1.Items.Add("
Item"
i,i)
运行后,单击按钮,效果如下图六所示:
图六:
添加Item
也可以使用如下代码来添加Item,其运行效果是一样的:
Dimitem0AsNewListViewItem("
item0"
0)
Dimitem1AsNewListViewItem("
item1"
1)
Dimitem2AsNewListViewItem("
item2"
2)
Dimitem3AsNewListViewItem("
item3"
3)
ListView1.Items.AddRange(NewListViewItem(){item0,item1,item2,item3})
五、为ListView控件添加列标题
当我们使用ListView控件的Details视图模式的时候,就必须为控件添加对应的列标题,才能显示出它所有的项。
1、视图模式下添加列标题
一般我们显示一个列表的时候,其列标题都应该是固定的,所以我们可以在视图模式中预先设置好列标题,这样比较直观。
先选中ListView控件,然后在它的属性窗口中找到Columns属性,单击后面的省略符号,如下图七所示:
图七:
Columns属性
然后在弹出的集合编辑器中添加和删除列标题即可,我们可以在编辑器的右边