来源:http://lcx.cc/?i=494

ListView控件

在工具箱上击鼠标右键,选择快捷菜单的Components(部件)项,在控件列表中选择Microsoft Windows Common Controls 5.0控件(Comctl32.ocx),这个控件中包括ListView、TreeView等几个Windows 95特有的控件。

如果使用的是Visual Basic 6.0,则应该选择Microsoft Windows Common Controls 6.0控件。

将 ColumnHeader 对象添加到 ListView 控件的 ColumnHeaders 集合中。 
 
语法 
ListView1.ColumnHeaders.Add(index, key, text, width, alignment, icon) 
Add 方法的语法包含下面部分: 
部分  描述 
object   必需的。对象表达式,其值是 ColumnHeaders 集合。 
index   可选的。唯一标识对象集合成员的整数。 
key   可选的。唯一的字符串表达式,可以用来访问集合的成员。 
text   可选的。出现在 ColumnHeader 对象中的字符串。 
width   可选的。数值表达式,它使用控件容器的度量单位指定对象的宽度。 
alignment  可选的。决定 ColumnHeader 对象中文本对齐方式的整数。关于设置信息,请参阅“请参阅列表中 Alignment 属性的信息。 
icon   可选的。Smallicons 图象列表中图象的关键字或索引。 
说明 Add 方法返回新插入的 ColumnHeader 对象的引用。 
使用 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 '给列表中添加列名
ListView1.ColumnHeaders.Add , , "本地 IP", 1500
ListView1.ColumnHeaders.Add , , "本地端口", 900
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)  '显示系统颜色

获取当前行数和列数:
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行

【VB技巧】VB ListView 控件功能使用详解的更多相关文章

  1. 转 VB ListView控件各种操作详解

    Private Sub Form_Load() ListView1.ListItems.Clear '清空列表 ListView1.ColumnHeaders.Clear '清空列表头 ListVie ...

  2. 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)

    1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...

  3. 《手把手教你》系列技巧篇(三十七)-java+ selenium自动化测试-日历时间控件-上篇(详解教程)

    1.简介 我们在实际工作中,有可能遇到有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据.网页上日历控件一般,是一个文本输入框,鼠标点击,就会弹出日历界面,可以选择具体日期.这 ...

  4. iOS:选择器控件UIPickerView的详解和演示

    选择器控件UIPickerView: 功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据.例如创建日历.字体表(类型.大小.颜色).图库等. ...

  5. delphi控件属性大全-详解-简介

    http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...

  6. iOS:提示框(警告框)控件UIActionSheet的详解

    提示框(警告框)控件2:UIActionSheet 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.它与导航栏类似,它继承自UIView.   风格类型: ...

  7. iOS:提示框(警告框)控件UIAlertView的详解

    提示框(警告框)控件:UIAlertView   功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.   类型:typedef NS_ENUM(NSInte ...

  8. iOS:网页视图控件UIWebView的详解

    网页视图控件:UIWebView 功能:它是继承于UIView的,是一个内置的浏览器控件,以用来浏览从网络下载下来的网页或者本地上加载下来的文档. 枚举: //网页视图导航类型 typedef NS_ ...

  9. iOS:图像选取器控制器控件UIImagePickerController的详解

    图像选择控制器:UIImagePickerController 功能:用于选取相册或相机等里面的照片. @interface UIImagePickerController : UINavigatio ...

随机推荐

  1. meta标签兼容性

    基本标签SEO 优化为移动设备添加 viewportWindows 8其他 禁止数字识自动别为电话号码不让android识别邮箱每 8 秒刷新一次页面移动端的头部标签和meta 基本标签 声明文档使用 ...

  2. ZOJ 1088 System Overload

    原题链接 题目大意:浙大的破网络容量有限,太多人同时使用BBS就会系统崩溃.为了保持系统正常工作,过载时就需要切断部分用户.规则是把玉泉所有的建筑从1到n编号,设定一个常数m.从1开始数,第m幢建筑的 ...

  3. ES6 — 字符串String

    ES6对字符串新增了一些函数和操作规范.下面我们来看ES6中对字符串新加的特性. 1.模版字符串 (即用反引号定义的字符串) 传统的字符串拼接通过我们使用'+'号与变量连接.例如: let name= ...

  4. Chrome A标签的迁移错误:【Error loading page】

    在IE中经常使用A标签用来迁移,正确的写法是 <a href="001.html"></a>即可,不过在chrome上面可能会引发错误无法迁移. 比如用下面 ...

  5. leetcode 128. Longest Consecutive Sequence ----- java

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  6. poj1094 拓扑序

    题意:现在有多个大写字母(不一定连续),给出字母之间的大小关系,问到第几个关系时就能判断有唯一大小排序或出现矛盾,或是有多个合理排序,若有唯一排序,则输出它. 拓扑序,只不过坑爹的是如果关系处理到一半 ...

  7. 英语语法最终珍藏版笔记-17名词性-主语-宾语-同位语-表语-that从句

    名词性从句 在主从复合句中,从句可以充当主句的主语.表语.宾语或同位语.由于在多数情况下,主语.表语.宾语或同位语这四种句子成分由名词性词类充当,所以,我们把这些作用相当于名词的从句统称为名词性从句, ...

  8. Andoid 利用ndk-stack定位崩溃代码

    Android NDK自从版本R6开始, 提供了一个工具ndk-stack( 在目录{ndk_root}/中 ). 这个工具能自动分析dump下来的crash log, 将崩溃时的调用内存地址和c++ ...

  9. c语言学习笔记

    为什么需要输出控制符: 1:  01组成的代码可以表示数据亦可以表示指令: 2:如果01组成的代码表示的是数据的话,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果.. %d   --- ...

  10. ajax请求后台,返回json格式数据,模板!

    添加一个用户的时候,需要找出公司下所有的部门,和相应部门下的角色,利用ajax请求,实现联动技术.将返回的json格式数据,添加到select标签下. <script type="te ...