• 【VB技巧】VB ListView 控件功能使用详解


    来源: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行

  • 相关阅读:
    linux环境安装es插件elasticsearch-head
    Linux环境安装安装NodeJS v10.16.3
    几种常见的关系型和非关系型数据库
    在window下安装Redis数据库,并用python链接Redis
    数据库锁机制
    脏读,不可重复读,幻读,丢失更新
    bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB
    shell 替换字符串的几种方法,变量替换${},sed,awk
    国内外短信接码平台合集
    canvas获取浏览器指纹-唯一的设备标识
  • 原文地址:https://www.cnblogs.com/zouhao/p/3658010.html
Copyright © 2020-2023  润新知