在用listview,经常对各种属性都不了解,用完了,下次又忘;写个随笔记记。

看到别人已经有总结很详细的,就直接转过来了,可能中间会有一些自己加的。

----------------------------------------------------------------------

(转)

一、ListView类

1、常用的基本属性:

(1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。

(2) GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。

(3)AllowColumnReorder:设置是否可拖动列标头来对改变列的顺序。(默认为false)提示:只有在Details视图该属性才有意义。

(4)View:获取或设置项在控件中的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为 LargeIcon)

(5)MultiSelect:设置是否可以选择多个项。(默认为false)

(6)HeaderStyle:获取或设置列标头样式。

Clickable:列标头的作用类似于按钮,单击时可以执行操作(例如排序)。

NonClickable:列标头不响应鼠标单击。

None:不显示列标头。

(7)LabelEdit:设置用户是否可以编辑控件中项的标签,对于Detail视图,只能编辑行第一列的内容。(默认为false)

(8)CheckBoxes:设置控件中各项的旁边是否显示复选框。(默认为false)

(9)LargeImageList:大图标集。提示:只在LargeIcon视图使用。

(10)SmallImageList:小图标集。提示:只有在SmallIcon视图使用。

(11)StateImageList:图像蒙板。这些图像蒙板可用作LargeImageList和SmallImageList图像的覆盖图,这些图像可用于指示项的应用程序定义的状态。(暂时不大懂)

(12)SelectedItems:获取在控件中选定的项。

(13)CheckedItems:获取控件中当前复选框选中的项。

(14)Soritng:对列表视图的项进行排序。(默认为None)

Ascending:项按递增顺序排序。

Descending:项按递减顺序排序。

None:项未排序。

(15)Scrollable:设置当没有足够空间来显示所有项时是否显示滚动条。(默认为true)

(16)HoverSelection:设置当鼠标指针悬停于项上时是否自动选择项。(默认为false)

(17)HotTracking:设置当鼠标指针经过项文本时,其外观是否变为超链接的形式。(默认为false)

(18)HideSelection:设置选定项在控件没焦点时是否仍突出显示。(默认为false)

(19)ShowGroups:设置是否以分组方式显示项。(默认为false);

(20)Groups:设置分组的对象集合。

(21)TopItem:获取或设置控件中的第一个可见项,可用于定位。(效果类似于EnsureVisible方法)

2、常用方法:

(1)BeginUpdate:避免在调用EndUpdate 方法之前描述控件。当插入大量数据时,可以有效地避免控件闪烁,并能大大提高速度。

(2)EndUpdate:在BeginUpdate 方法挂起描述后,继续描述列表视图控件。(结束更新)

(3)EnsureVisible:列表视图滚动定位到指定索引项的选项行。(效果类似于TopItem属性)

(4)FindItemWithText:查找以给定文本值开头的第一个 ListViewItem。

(5)FindNearestItem:按照指定的搜索方向,从给定点开始查找下一个项。提示:只有在LargeIcon或SmallIcon视图才能使用该方法。

3、常用事件:

(1)AfterLabelEdit:当用户编辑完项的标签时发生,需要LabelEdit属性为true。

(2)BeforeLabelEdit:当用户开始编辑项的标签时发生。

(3)ColumnClick:当用户在列表视图控件中单击列标头时发生。

   二、ListView的五种视图:

1、LargeIcon:每个项都显示为一个最大化图标,在它的下面有一个标签。(效果见下图)

2、SmallIcon:每个项都显示为一个小图标,在它的右边带一个标签。(效果见下图)

3、List:每个项都显示为一个小图标,在它的右边带一个标签。各项排列在列中,没有列标头。(效果见下图)

4、Details:可以显示任意的列,但只有第一列可以包含一个小图标和标签,其它的列项只能显示文字信息,有列表头。(效果见下图)

5、Tile:每个项都显示为一个完整大小的图标,在它的右边带项标签和子项信息。(只有Windows XP 和 Windows Server 2003 系列支持)

①Details视图:

this.listView1.SmallImageList = this.imageList1;  //将listView的图标集与imageList1绑定

(1)列表头创建(记得,需要先创建列表头)      

  1. ColumnHeader ch= new ColumnHeader();
  2.  ch.Text = "列标题1"; //设置列标题
  3. ch.Width = ; //设置列宽度
  4. ch.TextAlign = HorizontalAlignment.Left; //设置列的对齐方式
  5. this.listView1.Columns.Add(ch); //将列头添加到ListView控件。

或者

  1. this.listView1.Columns.Add("列标题1", , HorizontalAlignment.Left); //一步添加

          (2)添加数据项

          (3)显示项

  1. foreach (ListViewItem item in this.listView1.Items)
  2. {
  3. for (int i = ; i < item.SubItems.Count; i++)
  4. {
  5. MessageBox.Show(item.SubItems[i].Text);
  6. }
  7. }

           (4)移除某项

  1. foreach (ListViewItem lvi in listView1.SelectedItems) //选中项遍历
  2. {
  3. listView1.Items.RemoveAt(lvi.Index); // 按索引移除
  4. //listView1.Items.Remove(lvi); //按项移除
  5. }
          (5)行高设置(利用imageList实现)
  1. ImageList imgList = new ImageList();
  2.  
  3. imgList.ImageSize = new Size(, );// 设置行高 20 //分别是宽和高
  4.  
  5. listView1.SmallImageList = imgList; //这里设置listView的SmallImageList ,用imgList将其撑大

    (6)清空

  1. this.listView1.Clear(); //从控件中移除所有项和列(包括列表头)。
  2.  
  3. this.listView1.Items.Clear(); //只移除所有的项。

运行效果:

        ②largeIcon视图:

  1. this.listView1.View = View.LargeIcon;
  2.  
  3. this.listView1.LargeImageList = this.imageList2;
  4.  
  5. this.listView1.BeginUpdate();
  6.  
  7. for (int i = ; i < ; i++)
  8. {
  9. ListViewItem lvi = new ListViewItem();
  10.  
  11. lvi.ImageIndex = i;
  12.  
  13. lvi.Text = "item" + i;
  14.  
  15. this.listView1.Items.Add(lvi);
  16. }
  17.  
  18. this.listView1.EndUpdate();

运行效果:

          ③SmallIcon视图:

  1. this.listView1.View = View.SmallIcon;
  2.  
  3. this.listView1.SmallImageList= this.imageList1;
  4.  
  5. this.listView1.BeginUpdate();
  6.  
  7. for (int i = ; i < ; i++)
  8. {
  9. ListViewItem lvi = new ListViewItem();
  10.  
  11. lvi.ImageIndex = i;
  12.  
  13. lvi.Text = "item" + i;
  14.  
  15. this.listView1.Items.Add(lvi);
  16. }
  17.  
  18. this.listView1.EndUpdate();

运行效果:

           ④List视图:

  1. this.listView1.View = View.List;
  2.  
  3. this.listView1.SmallImageList= this.imageList1;
  4.  
  5. this.listView1.BeginUpdate();
  6.  
  7. for (int i = ; i < ; i++)
  8. {
  9. ListViewItem lvi = new ListViewItem();
  10.  
  11. lvi.ImageIndex = i;
  12.  
  13. lvi.Text = "item" + i;
  14.  
  15. this.listView1.Items.Add(lvi);
  16. }
  17.  
  18. this.listView1.EndUpdate();

运行效果:

     三、其它应用

  1、分组:   

  1. ListViewGroup man_lvg = new ListViewGroup(); //创建男生分组
  2.  
  3. man_lvg.Header = "男生"; //设置组的标题。
  4.  
  5. //man_lvg.Name = "man"; //设置组的名称。
  6.  
  7. man_lvg.HeaderAlignment = HorizontalAlignment.Left; //设置组标题文本的对齐方式。(默认为Left)
  8.  
  9. ListViewGroup women_lvg = new ListViewGroup(); //创建女生分组
  10.  
  11. women_lvg.Header = "女生";
  12.  
  13. //women_lvg.Name = "women";
  14.  
  15. women_lvg.HeaderAlignment = HorizontalAlignment.Center; //组标题居中对齐
  16.  
  17. this.listView1.Groups.Add(man_lvg); //把男生分组添加到listview中
  18.  
  19. this.listView1.Groups.Add(women_lvg); //把男生分组添加到listview中
  20.  
  21. this.listView1.ShowGroups = true; //记得要设置ShowGroups属性为true(默认是false),否则显示不出分组
  22.  
  23. for (int i = ; i < ; i++)
  24. {
  25. ListViewItem lvi = new ListViewItem();
  26.  
  27. lvi.ImageIndex = i;
  28.  
  29. lvi.Text = "item"+i;
  30.  
  31. lvi.ForeColor = Color.Blue; //设置行颜色
  32.  
  33. lvi.SubItems.Add("第2列,第"+i+"行");
  34.  
  35. lvi.SubItems.Add("第3列,第"+i+"行");
  36.  
  37. man_lvg.Items.Add(lvi); //分组添加子项
  38.  
  39. // 或 lvi.Group = man_lvg; //分组添加子项
  40.  
  41. this.listView1.Items.Add(lvi);
  42. }
 

运行效果:

          2、查找文本(只能查找到匹配前缀的文本且只能找出第一个符合的项):

  1. ListViewItem foundItem= this.listView1.FindItemWithText(this.textBox1.Text,true,); //参数1:要查找的文本;参数2:是否子项也要查找;参数3:开始查找位置
  2.  
  3. if (foundItem != null)
  4. {
  5.  
  6. this.listView1.TopItem = foundItem; //定位到该项
  7.  
  8. foundItem.ForeColor = Color.Red;
  9. }

C# 入门篇之listview用法的更多相关文章

  1. Go语言入门篇-项目常见用法&语法

    一.导入包用法: //_表示仅执行该包下的init函数(不需要整个包导入) import _ "git.xx.xx/baases/identity/cachain/version" ...

  2. Unity3D大风暴之入门篇(海量教学视频版)

    智画互动开发团队 编   ISBN 978-7-121-22242-9 2014年2月出版 定价:79.00元 328页 16开 编辑推荐 长达800分钟的高清教学视频,手把手教会初学者 数个开发案例 ...

  3. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

  4. 慕课网JavaScript入门篇课程笔记

    1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...

  5. Swift入门篇-闭包和函数

    今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数 1:函数类型 函数类型 var 变量 :(类型)->返回值 ...

  6. Swift入门篇-循环语句

    今天早上一起来所有新闻都是报道荷兰5-1战胜西班牙,我一看没有搞错吧,顿时想都如果中国队vs荷兰队也不至于会输的怎么惨吧,难道是荷兰队开挂了,于是我看了一下昨天比赛的视频直播,还真是新闻报道的那样,顿 ...

  7. Swift入门篇-字符串和字符

    今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本 ...

  8. Swift入门篇-基本类型(2)

    现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 .他们这种对新知识的探索精神我本人是很佩服的.但是 ...

  9. Swift入门篇-Hello World

    提示:如果您使用手机和平板电脑看到这篇文章,您请在WIFI的环境下阅读,里面有很多图片, 会浪费很多流量. 博主语文一直都不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 最近这2天主要 ...

随机推荐

  1. ACTIVITI 表结构数据分析

    ACTIVITI ACT_RU_EXECUTION 表     这个表是工作流程的核心表,流程的驱动都和合格表有密切的关系. 一般来讲一个流程实例都有一条主线.如果流程为直线流程,那么流程实例在这个表 ...

  2. 在现有 SharePoint 服务器上安装 PowerPivot for SharePoint

    步骤1: 检查 SQL Server 2008 R2 Analysis Services 实例的“程序”文件夹.如果您找到了现有安装或之前安装的证据,则执行剩余步骤.否则,直接执行步骤 2:安装 Po ...

  3. 一般处理文件.ashx中使用文件session遇到的问题

    在给其他网站提供接口的时候用ashx做的,在文件调用cs中的方法,方法中的Session报错:System.NullReferenceException: 未将对象引用设置到对象的实例. /// &l ...

  4. Android ClearEditText:输入用户名、密码错误时整体删除及输入为空时候晃动提示

    package com.lixu.clearedittext; import android.app.Activity; import android.os.Bundle; import androi ...

  5. (BFS)hdoj2377-Bus Pass

    题目地址 因为最后要看的是到所有路线上的区域最大距离最小的中心点,所以可以采取遍历路线上所有的区域,对每个区域进行BFS的办法.为了更方便的在每一次BFS都遍历所有的区域,可以加一个reach数组,记 ...

  6. ssl和https协议详解

    转自:https://cuiyongxiu.com/201102/24157.html ssl协议的起源和历史我就不再多说了,就是那个Netscape 网景公司开发的,它的作用主要是提供了一种安全传输 ...

  7. android平台手电筒开发源代码

    android平台手电筒开发源代码,AndroidManifest.xml文件的入口是startapp,这个文件没上传上来,大家可以自己写. 1. [代码]android 1 2 3 4 5 6 7 ...

  8. SharePoint安全 - 攻破SharePoint(黑客工具介绍)

    博客地址 http://blog.csdn.net/foxdave SharePoint的安全性很高,这是我们潜意识里的第一印象,所以具体的安全性体现在哪并没仔细研究过.但是事实上确实没有绝对安全的东 ...

  9. iOS多线程之GCD学习笔记

    什么是GCD 1.全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 2.纯C语言,提供了非常多强大的函数 GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 G ...

  10. struts2+hibernate整合开发步骤

    百度的各种代码,步骤,自己整合了一下 1,创建数据库 常用mysql   creat table..... 2,在WebContent下的bin中添加相应的包 http://pan.baidu.com ...