VB ListView控件各种操作详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB ListView控件各种操作详解相关的知识,希望对你有一定的参考价值。

VB ListView控件各种操作详解

 
[vb] view plaincopy技术分享图片技术分享图片
 
  1. Private Sub Form_Load()  
  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.   
  10.     ListView1.ColumnHeaders.Add , , "ID", 500 ‘给列表中添加列名  
  11.     ListView1.ColumnHeaders.Add , , "本地 IP", 1500  
  12.     ListView1.ColumnHeaders.Add , , "本地端口", 1200  
  13.     ListView1.ColumnHeaders.Add , , "协议", 550  
  14.     ListView1.ColumnHeaders.Add , , "远程 IP", 1500  
  15.     ListView1.ColumnHeaders.Add , , "远程端口", 900  
  16.     ListView1.ColumnHeaders.Add , , "当前状态", 900  
  17.     ListView1.ColumnHeaders.Add , , "连接时间", 900  
  18.     ‘-------------------------------------------------------  
  19.     Dim X  
  20.     X = ListView1.ListItems.Count + 1  
  21.     ListView1.ListItems.Add , , X  
  22.     ListView1.ListItems(X).SubItems(1) = "00:00:00"  
  23.     ListView1.ListItems(X).SubItems(2) = "2008-01-01"  
  24.     ListView1.ListItems(X).SubItems(3) = "(无)"  
  25.     ‘-------------------------------------------------------  
  26.     ListView1.ListItems.Clear               ‘清空列表  
  27.     ListView1.ListItems.Add , , "1"  
  28.     ‘ListView1.ListItems.Add , , "1", , 1   ‘添加图标 后面那个1是ImageList1控件中的图标索引号  
  29.     ListView1.ListItems(1).SubItems(1) = "00:00:00"  
  30.     ListView1.ListItems(1).SubItems(2) = "2008-01-01"  
  31.     ListView1.ListItems(1).SubItems(3) = "(无)"  
  32.   
  33.     ListView1.ListItems.Add , , "2"  
  34.     ListView1.ListItems(2).SubItems(1) = "00:00:01"  
  35.     ListView1.ListItems(2).SubItems(2) = "2008-01-01"  
  36.     ListView1.ListItems(2).SubItems(3) = "(无)"  
  37.     ‘-------------------------------------------------------  
  38.     ‘下列的属性也可以 单击控件右键->属性 进行设置。  
  39.     ListView1.View = lvwReport              ‘设置显示方式为列表  
  40.     ListView1.AllowColumnReorder = True     ‘对行进行程序排列,用鼠标进行排列  
  41.     ListView1.Arrange = lvwAutoLeft         ‘图标横排列  
  42.     ListView1.Arrange = lvwAutoTop          ‘图标竖排列  
  43.     ListView1.FlatScrollBar = False         ‘显示滚动条  
  44.     ListView1.FlatScrollBar = True          ‘隐藏滚动条  
  45.     ListView1.FullRowSelect = True          ‘选择整行  
  46.     ListView1.LabelEdit = lvwManual         ‘禁止标签编辑  
  47.     ListView1.GridLines = True              ‘显示网络线  
  48.     ListView1.LabelWrap = True              ‘图标可以换行  
  49.     ListView1.MultiSelect = True            ‘可以选择多个项目  
  50.     ListView1.PictureAlignment = lvwTopLeft ‘图片对齐方式是左顶部,其他有右顶部(1)、左底部(2)、右底部(3)、居中(4)、平铺(5)  
  51.     ListView1.Checkboxes = True             ‘显示复选框  
  52.     ‘ListView1.DropHighlight = ListView1.ListItems.Item(2)   ‘显示系统颜色  
  53.   
  54. End Sub  


技术分享图片

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

 

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行

设置ListView  item项颜色

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



以上是关于VB ListView控件各种操作详解的主要内容,如果未能解决你的问题,请参考以下文章

VB_listview控件如何设置各列的默认宽度?

vb listview控件问题

VB 中如何给listview控件定义或设置垂直滚动条(水平滚动条不要)

VB_listview控件如何设置各列的默认宽度?

ListView控件详解

vb.net listview控件怎么获取列的值啊??