ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 41684|回复: 54

[分享] ListView控件的常用操作

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-24 11:08 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:控件
本帖最后由 ouboy 于 2013-7-24 11:11 编辑

最近在学习ListView 这个控件,发现给listbox功能强得多。现在将我在网络上找到的资料给大家分享一下,使像我这样的新手也可以方便学习.
  1. 以下是介绍VB中的ListView控件的常用操作,比如:获取ListView某个值、删除、添加等等。

  2.     'ListView1.SmallIcons = ImageList1.Object '把ImageList1图标列表控件绑定到 ListView1列表控件中来。   

  3.     ListView1.ListItems.Clear               '清空列表

  4.     ListView1.ColumnHeaders.Clear           '清空列表头

  5.     ListView1.View = lvwReport              '设置列表显示方式

  6.     ListView1.GridLines = True              '显示网络线

  7.     ListView1.LabelEdit = lvwManual         '禁止标签编辑

  8.     ListView1.FullRowSelect = True          '选择整行


  9.     ListView1.ColumnHeaders.Add , , "ID", 500 '给列表中添加列名

  10.     ListView1.ColumnHeaders.Add , , "本地 ", 1500

  11.     ListView1.ColumnHeaders.Add , , "端口", 1200

  12.     ListView1.ColumnHeaders.Add , , "协议", 550

  13.     ListView1.ColumnHeaders.Add , , "IP", 1500

  14.     ListView1.ColumnHeaders.Add , , "当前状态", 900

  15.     ListView1.ColumnHeaders.Add , , "连接时间", 900

  16.     '-------------------------------------------------------

  17.      ListView1.ListItems.Clear               '清空列表

  18.     ListView1.ListItems.Add , , "1"

  19.     'ListView1.ListItems.Add , , "1", , 1   '添加图标 后面那个1是ImageList1控件中的图标索引号

  20.     '-------------------------------------------------------

  21.     '下列的属性也可以 单击控件右键->属性 进行设置。

  22.     ListView1.View = lvwReport              '设置显示方式为列表

  23.     ListView1.AllowColumnReorder = True     '对行进行程序排列,用鼠标进行排列

  24.     ListView1.Arrange = lvwAutoLeft         '图标横排列

  25.     ListView1.Arrange = lvwAutoTop          '图标竖排列

  26.     ListView1.FlatScrollBar = False         '显示滚动条

  27.     ListView1.FlatScrollBar = True          '隐藏滚动条

  28.     ListView1.FullRowSelect = True          '选择整行

  29.     ListView1.LabelEdit = lvwManual         '禁止标签编辑

  30.     ListView1.GridLines = True              '显示网络线

  31.     ListView1.LabelWrap = True              '图标可以换行

  32.     ListView1.MultiSelect = True            '可以选择多个项目

  33.     ListView1.PictureAlignment = lvwTopLeft '图片对齐方式是左顶部,其他有右顶部(1)、左底部(2)、右底部(3)、居中(4)、平铺(5)

  34.     ListView1.Checkboxes = True             '显示复选框

  35.     'ListView1.DropHighlight = ListView1.ListItems.Item(2)   '显示系统颜色


  36. 常用操作:
  37. 获取当前行数和列数:

  38. MsgBox "行数:" & ListView1.ListItems.Count & "列数:" & ListView1.ColumnHeaders.Count

  39. Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

  40.     ListView1.ToolTipText = "行数:" & ListView1.ListItems.Count & "列数:" & ListView1.ColumnHeaders.Count

  41. End Sub



  42. 设置宽度:

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



  44. 当前选中行:

  45. MsgBox ListView1.SelectedItem.Index



  46. 获取复选框的值:

  47. MsgBox ListView1.ListItems(1).Checked



  48. 删除指定行:

  49. ListView1.ListItems.Remove 1



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

  52. 读取某行第一列内容:

  53. ListView1.ListItems(i).Text



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

  55. ListView1.ListItems(Num).SubItems (4)



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

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



  58. 循环查找读取项目:

  59. Dim i As Integer

  60. For i = 1 To ListView1.ListItems.Count

  61.     If ListView1.ListItems(i).Text = 4 Then MsgBox ListView1.ListItems(i).Text '第一列

  62.     If ListView1.ListItems(i).SubItems(1) = 4 Then MsgBox ListView1.ListItems(i).SubItems(1) '第二列

  63. Next i



  64. 清空列表头:

  65. ListView1.ColumnHeaders.Clear



  66. 清空列表:

  67. ListView1.ListItems.Clear



  68. 右键菜单:

  69. Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

  70.     If Button = vbRightButton Then PopupMenu CommandLst '按下鼠标右键 显示菜单

  71. End Sub



  72. 当前选中判断:

  73. Dim N

  74. If ListView1.ListItems.Count <> 0 Then N = ListView1.SelectedItem.Index Else MsgBox "ABC!", vbInformation, "警告:": Exit Sub

  75. If N < 1 Then MsgBox "BCD!", vbInformation, "警告:": Exit Sub



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

  77. ListView.ListItems(i).Selected = True '选中第i行

  78. ListView.ListItems(i).Selected = False '选中第i行



  79. 设置ListView  item项颜色



  80. ListView1.ListItems(i).ForeColor = vbRed

  81. ListView1.ListItems(i).ListSubItems.Item(1).ForeColor = vbRed

  82. ListView1.ListItems(i).ListSubItems.Item(2).ForeColor = vbRed


复制代码

评分

5

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-24 11:13 | 显示全部楼层
VB 单击ListView控件某列表头进行排序,实现方法比较简单,不用写什么函数,ListView控件本身就有排序功能了。
  1. Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
  2.    ListView1.Sorted = True
  3.    ListView1.SortKey = ColumnHeader.Index - 1
  4.    If ListView1.SortOrder = lvwAscending Then
  5.         ListView1.SortOrder = lvwDescending
  6.    Else
  7.         ListView1.SortOrder = lvwAscending
  8.    End If
  9. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-25 23:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
单击ListView某一行,将ListView对应列的值返回到TEXT
  1. Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) 'ListView1单击事件

  2.      Item = ListView1.SelectedItem.Text
  3.     TextBox1.Text = Item
  4.    
  5.     TextBox2Text = ListView1.ListItems(Item.Index).SubItems(1)
  6.     TextBox3.Text = ListView1.ListItems(Item.Index).SubItems(2)
  7.     TextBox4.Text = ListView1.ListItems(Item.Index).SubItems(3)
  8.    
  9. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-7-26 00:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主有心,谢谢分享

TA的精华主题

TA的得分主题

发表于 2013-7-26 03:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享,学习了

TA的精华主题

TA的得分主题

发表于 2013-7-26 05:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-9-27 08:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-11-4 21:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-11-15 23:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-11-16 18:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ouboy 发表于 2013-7-25 23:15
单击ListView某一行,将ListView对应列的值返回到TEXT

ListView 这个控件是怎么取得的呢?请赐教,多谢!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 07:23 , Processed in 0.041001 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表