VB ListView 控件

摘要:
ViewCodePrivateSubCommand1_Click()'命令按钮ListView1.View=lvwReport'将ListView控件中ListItem对象的外观形式设置为报告,其值为3ListView1.ColumnHeaders。清除“清除原始列标题WithListView1.ColumnHeaders”添加新列标题。添加,,“”,10.添加,,,“第一列”,1000
View Code
PrivateSubCommand1_Click()'命令按钮ListView1.View=lvwReport'设置ListView控件中ListItem对象的外观形式为报表,其值为3ListView1.ColumnHeaders.Clear'清除原有的列标题WithListView1.ColumnHeaders'添加新的列标题.Add,,"",10
.Add,,
"第一列",1000'第一列标题,标题内容为“第一列”,列宽为1000.Add,,"第二列",1000'第二列标题,标题内容为“第二列”,列宽为1000EndWith
ListView1.ListItems.Clear
'清除原有的记录内容WithListView1.ListItems.Add'添加新记录.SubItems(1)=1'第一列内容.SubItems(2)=2'第二列内容EndWithEndSub
Private Sub Form_Load()
    ListView1.ListItems.Clear               '清空列表
    ListView1.ColumnHeaders.Clear           '清空列表头
    ListView1.View = lvwReport              '设置列表显示方式
    ListView1.GridLines = True              '显示网络线
    ListView1.LabelEdit = lvwManual         '禁止标签编辑
    ListView1.FullRowSelect = True          '选择整行

    ListView1.ColumnHeaders.Add , , "ID", 500 '给列表中添加列名
    ListView1.ColumnHeaders.Add , , "本地 IP", 1500
    ListView1.ColumnHeaders.Add , , "本地端口", 1200
    ListView1.ColumnHeaders.Add , , "协议", 550
    ListView1.ColumnHeaders.Add , , "远程 IP", 1500
    ListView1.ColumnHeaders.Add , , "远程端口", 900
    ListView1.ColumnHeaders.Add , , "当前状态", 900
    ListView1.ColumnHeaders.Add , , "连接时间", 900
    '-------------------------------------------------------
    Dim X
    X = ListView1.ListItems.Count + 1
    ListView1.ListItems.Add , , X
    ListView1.ListItems(X).SubItems(1) = "00:00:00"
    ListView1.ListItems(X).SubItems(2) = "2008-01-01"
    ListView1.ListItems(X).SubItems(3) = "(无)"
    '-------------------------------------------------------
    ListView1.ListItems.Clear               '清空列表
    ListView1.ListItems.Add , , "1"
    ListView1.ListItems(1).SubItems(1) = "00:00:00"
    ListView1.ListItems(1).SubItems(2) = "2008-01-01"
    ListView1.ListItems(1).SubItems(3) = "(无)"

    ListView1.ListItems.Add , , "2"
    ListView1.ListItems(2).SubItems(1) = "00:00:01"
    ListView1.ListItems(2).SubItems(2) = "2008-01-01"
    ListView1.ListItems(2).SubItems(3) = "(无)"
    '-------------------------------------------------------
    ListView1.View = lvwReport              '设置显示方式为列表
    ListView1.AllowColumnReorder = True     '对行进行程序排列,用鼠标进行排列
    ListView1.Arrange = lvwAutoLeft         '图标横排列
    ListView1.Arrange = lvwAutoTop          '图标竖排列
    ListView1.FlatScrollBar = False         '显示滚动条
    ListView1.FlatScrollBar = True          '隐藏滚动条
    ListView1.FullRowSelect = True          '选择整行
    ListView1.LabelEdit = lvwManual         '禁止标签编辑
    ListView1.GridLines = True              '显示网络线
    ListView1.LabelWrap = True              '图标可以换行
    ListView1.MultiSelect = True            '可以选择多个项目
    ListView1.PictureAlignment = lvwTopLeft '图片对齐方式是左顶部,其他有右顶部(1)、左底部(2)、右底部(3)、居中(4)、平铺(5)
    ListView1.Checkboxes = True             '显示复选框
    'ListView1.DropHighlight = ListView1.ListItems.Item(2)   '显示系统颜色

End Sub

VB ListView 控件第1张

常用操作:
获取当前行数和列数:
MsgBox "行数:" & ListView1.ListItems.Count & "列数:" & ListView1.ColumnHeaders.Count
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    ListView1.ToolTipText = "行数:" & ListView1.ListItems.Count & "列数:" & ListView1.ColumnHeaders.Count
End Sub

设置宽度:

ListView1.ColumnHeaders.Add , , "备注", 1500

当前选中行:

MsgBox ListView1.SelectedItem.Index

获取复选框的值:

MsgBox ListView1.ListItems(1).Checked

删除指定行:

ListView1.ListItems.Remove 1

去掉鼠标左键点击标签编辑:
labeledit属性改为1

读取某行第一列内容:

ListView1.ListItems(i).Text

读取某行第几列内容 (不包括第一列):

ListView1.ListItems(Num).SubItems (4)

读取当前选中行第一列内容:

ListView1.ListItems(ListView1.SelectedItem.Index).Text

循环查找读取项目:

Dim i As Integer
For i = 1 To ListView1.ListItems.Count
    If ListView1.ListItems(i).Text = 4 Then MsgBox ListView1.ListItems(i).Text '第一列
    If ListView1.ListItems(i).SubItems(1) = 4 Then MsgBox ListView1.ListItems(i).SubItems(1) '第二列
Next i

清空列表头:

ListView1.ColumnHeaders.Clear

清空列表:

ListView1.ListItems.Clear

右键菜单:

Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = vbRightButton Then PopupMenu CommandLst '按下鼠标右键 显示菜单
End Sub

当前选中判断:

Dim N
If ListView1.ListItems.Count <> 0 Then N = ListView1.SelectedItem.Index Else MsgBox "当前没有任何主机在线!", vbInformation, "警告:": Exit Sub
If N < 1 Then MsgBox "你没有选中任何主机!", vbInformation, "警告:": Exit Sub

VB设置某行为选中/非选中状态:

ListView.ListItems(i).Selected = True '选中第i行
ListView.ListItems(i).Selected = False '选中第i行
View Code
常用属性:
View设置或返回控件的视图类型
值说明
1-LvwIcon图标类型
2-LvwSmallIcon小图标类型
3-LvwList列表类型
4-LvwReport报表类型
Arrange设置后返回控件的图标排列方式(在图标视图下有效)
值说明
1-LvwNone不排列
2-LvwAutoLeft自动靠右排列
3-LvwAutoTop自动靠左排列
Icons、SmallIcons、ColumnHeaderIcons属性
Icons指定图标视图时的图标与ImageList的绑定
SmallIcons、ColumnHeaderIcons指定列表视图时的图标与ImageList的绑定
PICTURE、PictureAlignment属性
分别指定ListView控件的背景图片和布局方式
ListItems(Index)属性
ListItems属性是ListView控件中列表项的集合。Index用于指定列表项集合中的一个对象,
我们可以把这个对象看作对一行的引用
ListItems集合的属性
1.Text设置或返回显示文本
2.key关键字
3.index索引编号
4.icon,smallicon不同视图时显示单元格的图标
5.checked给checkboxes打√
6.selected使处于选定状态
7.ListSubitems(index)集合我们可以把这个集合看作对这行中单元格的引用
Text设置或返回单元格显示的内容
Reporticon设置单元格的图标
8.Subitems(index)设置或返回单元格文本==ListSubitems(index).text
ColumnHeaders(index)属性
ColumnHeaders属性是ListView控件中列标头的集合
1.text显示标题文本
2.key
3.index
4.icon指定标题图标
5.alignment指定index列的对齐方式(注意:第一列也就是列表项不能指定)
6.position返回当前列的索引
7.subitemindex返回指定列的listsubitem索引
TextBackgroud属性
决定text的背景是透明还是ListView的背景色
0lvwTransparent透明
1lvw不透明(用listview的背景色)
Ghosted属性logic
决定是否虚状
HideColumnHeaders属性
隐藏表头
LabelWrap属性
标签转行View.LargeIcon或View.SmallIcon时才使用该属性
FullRowSelect
整行显示
HotTracking
热点追踪鼠标指针自动调整为手型
HoverSelection属性
自动聚焦鼠标指针自动调整为手型
AllowColumnReorder属性
值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列
Sorted属性
当值为.t.时,列表按字母排序
常用方法:
ListItems.add(index,key,text,icon,smallicon)
向listitems添加一列表项。
Index插入列表项的编号
Key插入列表项的关键字
Text插入列表项的文本
Icon当为图标视图时要求显示的图标
Smallicon当为小图标视图时要求显示的图标
Clear
清除listitems集合中所有的列表项
Remove清除选定行
L1
=thisform.view1
L1.listitems.remove(L1.selectedItem.index)
AllowColumnReorder属性
值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列
常用事件:
AfterLabelEdit
编辑当前选择的列表对象之后发生
BeforeLabelEdit
编辑当前选择的列表对象之前发生
ItemClick
单击某一列表对象时发生
参数item对当前列表项的引用
事件
AfterLabelEdit:编辑ListItem对象的标签时被触发。
BeforeLabelEdit:编辑ListItem对象的标签后出发。
ColumnClick:单击列标题时触发。参数中可以获得被单击的列对象。通常用于排序。
ItemClick:单击某行或某ListItem时触发。参数中可以获得被单击的ListItem对象。
方法
FindItem:搜索ListItem对象。
参数:
string:搜索字符串。
value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:开始搜索的位置。
match:匹配方式。
HitTest:检索位于特定坐标处的ListItem对象。
vb中的实例
PrivateSubForm_load()
'确保ListView控件的view属性为报表视图。ListView1.View=lvwReport
'添加三列。ListView1.ColumnHeaders.Add,"Name","姓名"
ListView1.ColumnHeaders.Add,
"Sex","性别"
ListView1.ColumnHeaders.Add,
"Age","年龄"'向控件添加ListItem对象。DimitmXAsListItem
'添加column1的名称。SetitmX=ListView1.ListItems.Add(1,"ZL","张力")
'使用SubItemIndex将SubItem与正确的ColumnHeader关联。使用关键字("Sex")指定正确的ColumnHeader。
itmX.SubItems(ListView1.ColumnHeaders(
"Sex").SubItemIndex)=""'使用ColumnHeader关键字将SubItems字符串与'正确的ColumnHeader关联。itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"SetitmX=ListView1.ListItems.Add(1,"LF","李芳")
itmX.SubItems(ListView1.ColumnHeaders(
"Sex").SubItemIndex)=""
itmX.SubItems(ListView1.ColumnHeaders(
"Age").SubItemIndex)="22"SetitmX=ListView1.ListItems.Add(1,"WW","王伟")
itmX.SubItems(ListView1.ColumnHeaders(
"Sex").SubItemIndex)=""
itmX.SubItems(ListView1.ColumnHeaders(
"Age").SubItemIndex)="24"EndSubPrivateSubListView1_ColumnClick(ByValColumnHeaderAs
ComctlLib.ColumnHeader)
SelectCaseColumnHeader.Key
Case"Sex":ListView1.SortKey=1
ListView1.SortOrder
=lvwAscending
ListView1.Sorted
=TrueCase"Age":ListView1.SortKey=2
ListView1.SortOrder
=lvwAscending
ListView1.Sorted
=TrueEndSelectEndSub
例二
PrivateSubUserForm_Initialize()
ListView1.ColumnHeaders.Add,,
"QQ号"'添加QQ号列ListView1.ColumnHeaders.Add,,"呢称"'添加呢称列ListView1.ColumnHeaders.Add,,"来自何处"'添加来自何处列ListView1.View=lvwReport''设置显示方式为报表格式EndSub
代码说明:
1、在工作表中用Column表示列。而在Listview控件中,用ColumnHeaders对象来操作列,而添加新的列可以用ColumnHeaders对象的ADD方法。具体如下:
ListView1.ColumnHeaders.Add序号,唯一的字符串标识,列标显示文字,列宽,列的内容对齐方式,所使用的图标序号。
如本例中:ListView1.ColumnHeaders.Add,,
"QQ号"2、Listview控件的View属性决定着它的显示的方式,具体如下:ListView1.View=lvwIcon'图标显示
ListView1.View
=lvwSmallIcon'小图标显示ListView1.View=lvwList'列表显示ListView1.View=lvwReport'报表显示添加效果:
示例文件:
代码:
PrivateSubUserForm_Initialize()'声明变量类型DimITMAsListItem'添加QQ号列,列宽占总宽度的三分之一,左对齐ListView1.ColumnHeaders.Add,,"QQ号",ListView1.Width/3,
lvwColumnLeft
'添加呢称列,列宽占总宽度的三分之一,居中对齐ListView1.ColumnHeaders.Add,,"呢称",ListView1.Width/3,
lvwColumnCenter
'添加来自何处列,列宽占总宽度的三分之一,右对齐ListView1.ColumnHeaders.Add,,"来自何处",ListView1.Width/3,
lvwColumnRight
'设置显示方式为报表格式ListView1.View=lvwReport'显示表格线ListView1.Gridlines=True'设置循环,填充记录Fori=1To[A65536].End(xlUp).Row'添加记录SetITM=ListView1.ListItems.Add()'添加记录的行标题定义产生一个新记录,新行
ITM.Text
=Cells(i,1)'添加记录的记录文本说明ITM.SubItems(1)=Cells(i,2)'添加记录的第一个字段的内容,在第二列上显示ITM.SubItems(2)=Cells(i,3)
Nexti
EndSub
代码说明:
1、ListView1的Gridlines属性为True时显示表格线,为False不显示表格线。
2、在ListView控件中,添加记录要通过ListItems集合对象来实现,如本例中SetITM=
ListView1.ListItems.Add()
3、设置第一列的内容是通过text属性来添加,而以后各列的添加则通过SubItems对象来实现。第2列为SubItems(1)第3列为SubItems(2)..........
4、在Listview控件第1列只能左对齐,而不能采取其他对齐方式
5、单元格引用:CELLS(行,列)
增加列
listView1.ColumnHeaders.Add
增加行
listView1.ListItems.Add

免责声明:文章转载自《VB ListView 控件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ORACLE 12C PDB部分功能测试Oracle 内置函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android学习笔记(20)————利用ListView制作带竖线的多彩表格

http://blog.csdn.net/conowen/article/details/7421805 /********************************************************************************************* author:conowen@大钟 * E-mail:cono...

Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)

最新最准确内容建议直接访问原文:Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类) 介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)、及Android常用工具类(网络、下载、...

Adroid 总结--android ListView美化,个性化更改的属性

首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseandroid:stackFromBottom="true"第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件trans...

继续聊WPF——用Blend自定义Listview控件的列表头

在Blend中右击ListView控件,从样式和模板相关的菜单项中,我们没找到与列表头有关的项。 然后,我们到属性面板中找GridView的ColumnHeaderContainerStyle属性,结果你发现,就算你在高级选项菜单中把它转换为本地资源,你会发现它没有反应,切换到XAML视图也没看到生成的代码。 那是不是没办法了呢?这个问题我想了想...

十二、数据绑定——listview

第一种 方法一 第一步:在XAML文件中 <ListView x:Name="lv1" HorizontalAlignment="Left" Margin="102,240,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.498,-1.5"><ListView.ItemTempl...

WPF ListView / ListBox 更新绑定数据源时,自动刷新界面显示

问题现象:ListView 更新绑定数据源时,界面不能自动刷新。 原因及解决方案: 1、ListView 的 ItemSource 使用 BindingList < T >; 注:由于 List < T > 没有实现 INotifyPropertyChanged 接口, 因此若使用 List < T > 作为 ItemS...