ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7)
  ColumnHeader对象是ListView控件中包含标头文字的项目。利用ColumnHeader对象,用户可以:
  ▲单击对象触发ColumnClick事件并根据数据项目将项目排序。
  ▲拖动对象的右边框来调整列宽度。
  ▲在报表视图中隐藏ColumnHeader对象。
  ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。

ColumnHeader对象的SubItemIndex属性
  该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。第一列的列标头SubItemIndex属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。列标头数目取决于子项目数目。列标头数目总是比子项目数目多1。
  在设计时可以利用属性页的“列首”选项卡将ColumnHeader对象添加到ListView控件中,在运行时则用Add方法添加。

ColumnHeader对象的Add方法
  该方法的使用与前面那些控件基本相似,就不再介绍了。
  ListView1.ColumnHeader.Add(index,key,text,width,alignment)
  ListItem对象是指控件中的一行(不包含标头行)的所有内容。它也可包含文本和图片,但是要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件。

ListItem对象的SubItems属性
  返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。
  ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。

ListItem对象的Add方法 
  该方法添加ListItem对象到ListView控件的ListItems集合中并返回对新创建对象的引用。
它的语法如下:

  ListItem1.Add(index,key,text,icon,smallIcon)

ListView控件的View属性
  ListView控件可使用四种不同视图显示项目,这可以用View属性来确定。该属性返回或设置ListView控件中ListItem对象的外观。
  ListView控件的SortOrder,SortKey和Sorted属性
  控件中的ListItem对象可以按要求进行排序,与排序有关的属性是SortOrder,Sorted和SortKey属性。
SortOrder属性返回或设置一个值,此值决定ListView控件中的ListItem对象以升序或降序排序。
  SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序。
  Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序的值。
  下面的代码说明了如何创建ColumnHeaders和ListItem对象,SubItemIndex和SubItem属性的使用方法以及如何排序。

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 AsComctlLib.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

Listview使用的更多相关文章

  1. 张高兴的 UWP 开发笔记:横向 ListView

    ListView 默认的排列方向是纵向 ( Orientation="Vertical" ) ,但如果我们需要横向显示的 ListView 怎么办? Blend for Visua ...

  2. Android—万能ListView适配器

    ListView是开发中最常用的控件了,但是总是会写重复的代码,浪费时间又没有意义. 最近参考一些资料,发现一个万能ListView适配器,代码量少,节省时间,总结一下分享给大家. 首先有一个自定义的 ...

  3. Android—ListView条目背景为图片时,条目间距问题解决

    ListView是android开发中使用最普遍的控件了,可有的listView条目的内容颇为丰富,甚至为了美观,背景用指定图片,如下图:

  4. Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)

    昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...

  5. listview下拉刷新和上拉加载更多的多种实现方案

    listview经常结合下来刷新和上拉加载更多使用,本文总结了三种常用到的方案分别作出说明. 方案一:添加头布局和脚布局        android系统为listview提供了addfootview ...

  6. Android listview和gridview以及view的区别

    GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...

  7. mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context

    需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面. 环境:mono 效果: 布局代码 主布局 <?xml version=" ...

  8. 【腾讯Bugly干货分享】跨平台 ListView 性能优化

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/FbiSLPxFdGqJ00WgpJ94yw 导语 精 ...

  9. android内部培训视频_第三节(3)_常用控件(ViewPager、日期时间相关、ListView)

    第三节(2):常用控件之ViewPager.日期时间相关.ListView  一.ViewPager 实例:结合PagerAdapter滑动切换图片  二.日期时间相关:AnalogClock\Dig ...

  10. 父ListView嵌套子ListView时点击事件没有响应

    转发请备注出处:http://www.cnblogs.com/LT5505/p/5972999.html 问题: 在ListView中嵌套ListView之后,子ListView会把父ListView ...

随机推荐

  1. lr参数与C语言函数参数的区别

    C变量不能再lr函数中使用: c变量必须定义在lr函数之前: LR参数可以在LR函数中直接当做字符串使用. LR参数是lr自己封装的一个钟对象, LR参数的表达方式:{ParamName}

  2. C语言:结构体中(.)和(->)的区别

    https://blog.csdn.net/faihung/article/details/79190039 这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过. 下面说说 ...

  3. Jmeter接口测试系列之测试用例编写和调用

    在使用Jmeter进行接口测试时,首先需要根据接口定义,编写响应的接口测试用例,在编写接口测试用例时,我们根据测试的侧重点不同,使用不同的方式编译测试用例. 一种是:整个请求参数作为一个变量,进行测试 ...

  4. Unity3D 可空值类型 Nullable

    值类型的变量永远不会变null,因为值类型是其本身不会变成null.引用类型可变成null,内存会全部使用0来表示null,因为这种开销会降低,仅仅需要将一块内存清除. 表示一些空值的方案: 1.使用 ...

  5. 递归算法之Fibonacci 斐波那契数列第n个数的求解

    Fibonacci 斐波那契数列第n个数的求解,也可以用递归和非递归的形式实现,具体如下,dart语言实现. int fibonacci(int n) { if (n <= 0) throw S ...

  6. 【Python】关于近期爬虫学习的总结

    写在开头 在之前的三篇文章中,我尝试了使用python爬虫实现的对于特定站点的<剑来>小说的爬取,对于豆瓣的短评的爬取,也有对于爬取的短评数据进行的词云展示,期间运用了不少的知识,现在是时 ...

  7. jQuery 获取设置图片 src 的路径

    1.获取: $('#img')[0].src 2.设置:$('#img').attr("src", data.CodeUrl);

  8. 11g Oracle Rac安装(基于linux6)

    安装 Oracle 11gR2 RAC on Linux 6 本文介绍如何在Oracle Linux 6上安装2节点Oracle 11gR2 Real Application Cluster(RAC) ...

  9. CentOS7编译安装sshpass过程

    环境说明:centos 7 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 我的sshpass版本 sshpass-1.06. ...

  10. vue使用笔记二

    es6\es2015特性http://lib.csdn.net/article/reactnative/58021?knId=1405 使用express-generator初始化你的项目目录http ...