一.定义
拖入该控件系统自动在Designer.cs里添加 this.listView1 = new System.Windows.Forms.ListView();

二.初始化,确定模式,确定列
InitializeComponent()里系统自动完成对它的初始化操作
而用户自定义的初始化操作建议写在Form构造函数里跟在InitializeComponent()后面。
原因是一旦listView有变动,系统自动调整InitializeComponent()内容,可能会自动删除掉用户写的部分。

this.listView1.Columns.Add(“组件名”);
this.listView1.Columns.Add(“版本号”);
this.listView1.Columns.Add(“进度”); //这些是主要的,确定一共几个列
this.listView1.View = System.Windows.Forms.View.Details;//不写这句,加的列显示不出来

三.Details模式下的ListView用法
对listView的View属性赋值
很多教程都直接写this.listView1.View =View.Details;
System.Windows.Forms.View是个枚举 public enum View;

1.LargeIcon 每个项都显示为一个最大化图标,在它的下面有一个标签。
2.Details 每个项显示在不同的行上,并带有关于列中所排列的各项的进一步信息。最左边的列包含一个小图标和标签,后面的列包含应用程序指定的子项。列显示一个标头,它可以显示列的标题。用户可以在运行时调整各列的大小。
3.SmallIcon 每个项都显示为一个小图标,在它的右边带一个标签。
4.List 每个项都显示为一个小图标,在它的右边带一个标签。各项排列在列中,没有列标头。
5.Tile 每个项都显示为一个完整大小的图标,在它的右边带项标签和子项信息。显示的子项信息由应用程序指定。此视图仅在下面的平台上受支持:Windows XP 和 Windows Server 2003 系列。在之前的操作系统上,此值被忽略,并且 ListView 控件在 LargeIcon 视图中显示。

listView1.FullRowSelect = true;
this.listView1.GridLines = true;
listView1.LabelEdit = true;// Allow the user to rearrange columns.
listView1.AllowColumnReorder = true;// Display check boxes.
listView1.CheckBoxes = true;
listView1.Sorting = SortOrder.Ascending;//Create three items and three sets of subitems for each item.
另外还有很多自定义属性

默认的列宽不大,标题头显示不全
listView1.Columns[0].Width = 100;
listView1.Columns[1].Width = 100;
Columns数组本身可以引用每个列

四. 两种操作增加行

1.直接添加法
this.listView1.Items.Add("A1");
//给控件表添加一个新行,且把新行第一列数据设为A1,此时新行内元素集合是this.listView1.Item[0]
this.listView1.Items[0].SubItems.Add("A2");
//给第一行this.listView1.Item[0]添加第二列数据A2.如果说Items在行的层次增加,Item[i].SubItems才真正对应单元格操作
this.listView1.Items[0].SubItems.Add("A3");
//给第一行this.listView1.Item[0]添加第三列数据A3
此时第一行添加工作结束,第一行各列内容为 A1---A2---A3this.listView1.Items.Add("B1");  //添加了第二行数据,同时添加了第二行第一列的单元格内容
this.listView1.Items[1].SubItems.Add("B2"); //Items表示行,所以第二行就是Items[1],行标从0起始
this.listView1.Items[1].SubItems.Add("B3");
第二行结束,内容B1---B2---B3eg:
lvUpdateList.Items.Add(nametemp);
this.lvUpdateList.Items[i].SubItems.Add(timetemp.ToString("yyyy-MM-dd HH:mm:ss"));
this.lvUpdateList.Items[i].SubItems.Add(pathtemp);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
2.ListViewItem间接添加法方法:先创建一个行对象再把这个行对象添加给this.listView1.ItemsListViewItem li的初始化又有两种方法,大同小异1.ListViewItem li=new ListViewItem("A1");
2.ListViewItem li=new ListViewItem();li.Text="A1";
//作用相同都是初始化一个“行对象”,同时把这个行对象的第一列单元格初始化为"A1"li.SubItems.Add("abc");
li.SubItems.Add("cde");//然后把第二列和第三列内容加上。
this.listView1.Items.Add(li); //这句话在前几句话之前也行,之后也行
//可以先加进listView再添加子项,也可以都加全了子项再加进listView
//li可以复用,不断初始化成新的行进行添加。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

五.项的选取和数据的采集(现阶段ListView项的选取分成两类)

1.左键选取,适用的方法是SelectedItems和SelectedIndices
a.判断有没有项被选中,如果不判断那么用到SelectedItem[i]时会因为没有合适结果报错
if (this.listView1.SelectedItems.Count > 0)
b.SelectedItems是获取选中的行的集合,也就是支持多行选择,是多行的集合
this.textBox2.Text = this.listView1.SelectedItems[0].Text;
这里的索引[0]并不是指原列表的第一行,而是将全体被选中行当做一个集合,在被选中行中的第一被选行。
此时返回的是该行第一列的单元格内容。
this.textBox2.Text = this.listView1.SelectedItems[0].SubItems[0].Text;
用SubItems[0]两者得到的结果是一样的,也是第一被选行的第一列。
this.textBox2.Text = this.listView1.SelectedItems[0].SubItems[1].Text;
上面是第一被选行的第二列,以此类推。
c.SelectedIndices是返回选中行的索引值int
this.listView1.SelectedIndices[i]也是将选中行当做整体,用i去定位。
如果只对选取单行做获取判断listView1.FocusedItem.Text估计效率更高

2.通过复选框勾选选取CheckedItems

转自(修改整理):http://www.cnblogs.com/rosesmall/p/5533667.html

C#listview控件相关推荐

  1. Android使用ListView控件问题

    Android使用ListView控件问题: The application has stopped unexpectedly, please try again. 开发环境:android 1.6 ...

  2. ASP.NET ListView控件基本操作

    1.前台代码 View Code 1 <asp:ListView ID="lvDepartment" runat="server" DataKeyName ...

  3. 【转】 ASP.NET 3.5中使用新的ListView控件

    ASP.NET中新的ListView控件为显示和CURD数据库操作提供了基于模板的布局,使之成为一项极好的方式,建立以数据为中心的Web应用程序. 当你编写以用户为中心的应用程序时,总需要某种形式的数 ...

  4. C# ListView控件显示表格(自适应宽度),添加 Checkbox,删除选择项,选中颜色和鼠标滑过背景变色

    本文转载自:http://www.liangshunet.com/ca/201309/586362553.htm 亮术网 2020-03-07 本网原创 DataGridView控件功能十分强大,显示 ...

  5. ListView控件的基本使用(方式一:使用ArrayAdapter适配器实现)

    ListView绝对可以称得上是Android中最常用的控件之一,几乎所有的应用程序都会用到它.由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候 ...

  6. ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)

    目录: ListView控件学习系列1-了解ListView控件 ListView控件学习系列2-编辑ListView ListView控件学习系列3-ListView选择,排序,分页 ListVie ...

  7. VB.net实现从ListView控件中异地获取文本内容源代码

    对于一些VB6工程代码来说,需要完成从VB到VB.net的转换,在转换过程中需要注意很多内容,利用VB.net的直接转换功能很少能完全成功,需要我们付出很大的努力. 下面的VB.net代码实现从其他应 ...

  8. listview显示mysql数据_C#在listview控件中显示数据库数据

    一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...

  9. 【小技巧积累】设置ListView控件的Item不在Tab键导航序列中

    在默认情况下,ListView控件的Item在Tab键导航序列中,就算我们将ListView控件的IsTabStop属性设置为False.而有些情况下,我们需要按Tab键时能跳过ListView控件. ...

  10. android中ListView控件onItemClick事件中获取listView传递的数据

    http://blog.csdn.net/aben_2005/article/details/6592205 本文转载自:android中ListView控件&&onItemClick ...

最新文章

  1. 阿里云(一)云存储OSS的命令行osscmd的安装和使用
  2. javascript 中的innerHTML的用法
  3. java 高级泛型_java泛型的高级应用
  4. latex表格名的引用问题
  5. bat代码雨代码流星_bat-入门系列-03-判断结构2
  6. 谷歌发布 iOS 黑客工具软件,或导致 iOS 11 被越狱
  7. 面试 AI 算法岗,你被要求复现顶会了嘛?
  8. bzoj1295 最长距离
  9. 七年之后的《深入理解计算机系统》
  10. 华为交换机导入配置_华为交换机配置文件导入 华为s5700交换机配置教程
  11. bin文件转dat文件
  12. 一文掌握Java基础知识点(思维导图)
  13. 开心网之开心餐厅游戏分析报告
  14. 数学分析-极值点、拐点
  15. 如何在 Python 中调用函数?九种方法任你挑选
  16. 微信小程序开发页面介绍
  17. ❌ Exiting due to GUEST_PROVISION: Failed to cache ISO: unable to cache ISO:
  18. Amazon Shield Advanced 更新 – 自动应用程序层 DDoS 防御
  19. 梅森旋转(Mersenne twister)及其他随机数生成算法
  20. 外边距 - margin

热门文章

  1. redis的set集合
  2. wincc连接mysql数据库说明_wincc 数据库的连接方法
  3. imx226_【索尼IMX136LQJ-C、IMX236LQJ-C、IMX226CQJ-C、IMX274LQC-C、】价格_厂家 - 中国供应商...
  4. 采集企业联系方式的10个经典方法
  5. 【Network篇<Day02>】——华为模拟器eNSP、交换机命令、路由器命令
  6. 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业 (1)
  7. 新手起步:通达信怎么编写指标公式以及通达信公式的使用方法
  8. VMware ESXi虚拟机安装Windows7
  9. 【蓝牙】 HCI log分析工具----Frontline ComProbe Protocol Analysis System使用教程
  10. win10自动停用打印服务器,技术员详解win10系统添加打印机总是自动关闭打印服务的技巧...