zoukankan      html  css  js  c++  java
  • VB ListView 控件

    View Code
    Private Sub Command1_Click()            '命令按钮
        ListView1.View = lvwReport          '设置ListView控件中ListItem对象的外观形式为报表,其值为3
        ListView1.ColumnHeaders.Clear       '清除原有的列标题
        With ListView1.ColumnHeaders        '添加新的列标题
            .Add , , ""10
            .Add , , 
    "第一列"1000         '第一列标题,标题内容为“第一列”,列宽为1000
            .Add , , "第二列"1000         '第二列标题,标题内容为“第二列”,列宽为1000
        End With
        
        ListView1.ListItems.Clear           
    '清除原有的记录内容
        With ListView1.ListItems.Add        '添加新记录
            .SubItems(1= 1                '第一列内容
            .SubItems(2= 2                '第二列内容
        End With
    End Sub
    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

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

    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的背景色
                 值 
    0 lvwTransparent 透明
                 
    1 lvw 不透明(用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 中的实例
                 
    Private Sub Form_load() 
                 
    '确保ListView控件的view属性为报表视图。 
                 ListView1.View=lvwReport 
                 
    '添加三列。 
                 ListView1.ColumnHeaders.Add,"Name","姓名" 
                 ListView1.ColumnHeaders.Add,
    "Sex","性别" 
                 ListView1.ColumnHeaders.Add,
    "Age","年龄" 
                 
    '向控件添加ListItem对象。 
                 Dim itmX As ListItem 
                 
    '添加column1的名称。 
                 Set itmX=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" 
                 
    Set itmX=ListView1.ListItems.Add(1,"LF","李芳"
                 itmX.SubItems(ListView1.ColumnHeaders(
    "Sex").SubItemIndex)="" 
                 itmX.SubItems(ListView1.ColumnHeaders(
    "Age").SubItemIndex)="22" 

                
    Set itmX=ListView1.ListItems.Add(1,"WW","王伟"
                 itmX.SubItems(ListView1.ColumnHeaders(
    "Sex").SubItemIndex)="" 
                 itmX.SubItems(ListView1.ColumnHeaders(
    "Age").SubItemIndex)="24" 
                 
    End Sub
                 
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader   As 
                 ComctlLib.ColumnHeader) 
                 
    Select Case ColumnHeader.Key 
                 
    Case "Sex":ListView1.SortKey=1 
                 ListView1.SortOrder
    =lvwAscending 
                 ListView1.Sorted
    =True 
                 
    Case "Age":ListView1.SortKey=2 
                 ListView1.SortOrder
    =lvwAscending 
                 ListView1.Sorted
    =True 
                 
    End Select 
                 
    End Sub
                 例二
                 
    Private Sub UserForm_Initialize()
                 ListView1.ColumnHeaders.Add , , 
    "QQ号" '添加QQ号列
                 ListView1.ColumnHeaders.Add , , "呢称" '添加呢称列
                 ListView1.ColumnHeaders.Add , , "来自何处" '添加来自何处列
                 ListView1.View = lvwReport ''设置显示方式为报表格式
                 End Sub
                 代码说明:
                 
    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 '报表显示 添加效果:
                 
                 示例文件:
                 代码:
                 
    Private Sub UserForm_Initialize() '声明变量类型
                 Dim ITM As ListItem '添加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 '设置循环,填充记录 
                 
                 
    For i = 1 To [A65536].End(xlUp).Row '添加记录
                 Set ITM = ListView1.ListItems.Add() '添加记录的行标题 定义产生一个新记录,新行 
                 
                 ITM.Text 
    = Cells(i, 1'添加记录的记录文本说明
                 ITM.SubItems(1= Cells(i, 2'添加记录的第一个字段的内容,在第二列上显示
                 ITM.SubItems(2= Cells(i, 3)
                 
    Next i
                 
    End Sub
                 代码说明: 
    1、ListView1的Gridlines属性为True时显示表格线,为False不显示表格线。
                 
    2、在ListView控件中,添加记录要通过ListItems集合对象来实现,如本例中Set ITM = 
                 ListView1.ListItems.Add()
                 
    3、设置第一列的内容是通过text属性来添加,而以后各列的添加则通过SubItems对象来实现。第2列为SubItems(1)第3列为SubItems(2)..........
                 
    4、在Listview控件第1列只能左对齐,而不能采取其他对齐方式
                 
    5、单元格引用:CELLS(行,列) 
                 增加列
                 listView1.ColumnHeaders.Add 
                 增加行
                 listView1.ListItems.Add
  • 相关阅读:
    Java 数组
    【转】Centos 设置IP地址的几种方式
    【转】CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
    【转】CentOS图形界面的开启与关闭
    【转】linux Centos 6.5 安装桌面环境GNOME
    VirtualBox 更改主机和虚拟机之间的鼠标切换热键
    【转】Virtualbox虚拟机配置安装CentOS 6.5图文教程
    0622 python 基础05
    0617 python 基础04
    0610 python 基础03
  • 原文地址:https://www.cnblogs.com/findw/p/2045653.html
Copyright © 2011-2022 走看看