C# ListView用法详解 ZT

winform入门篇 第14章 列表控件 MyListltemTag定义 MyListltemTag,每个 ListViewltem 关联一个 Tag对象比较器需要实现 IComparer 接口实现 Compare 方法,比较对象x和y的相对大小。其中,传进来的 x y 对象实际上是 ListViewltem 类型。 阅读详情

本文为转载:http://www.cnblogs.com/q280352958/archive/2013/02/19/2916931.html

作者还有不少好文章。可以借鉴


一、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)列表头创建(记得,需要先创建列表头)    

             ColumnHeader  ch= new ColumnHeader();

             ch.Text = "列标题1";   //设置列标题

             ch.Width = 120;    //设置列宽度

             ch.TextAlign = HorizontalAlignment.Left;   //设置列的对齐方式

             this.listView1.Columns.Add(ch);    //将列头添加到ListView控件。

                          或者

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

       (2)添加数据项  

        this.listView1.BeginUpdate();   //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度

        for (int i = 0; i < 10; i++)   //添加10行数据
        {
            ListViewItem lvi = new ListViewItem();

            lvi.ImageIndex = i;     //通过与imageList绑定,显示imageList中第i项图标

            lvi.Text = "subitem" + i;

            lvi.SubItems.Add("第2列,第"+i+"行");

            lvi.SubItems.Add("第3列,第"+i+"行");

            this.listView1.Items.Add(lvi);
        }

        this.listView1.EndUpdate();  //结束数据处理,UI界面一次性绘制。

          (3)显示项

          foreach (ListViewItem item in this.listView1.Items)
          {
                for (int i = 0; i < item.SubItems.Count; i++)
                {
                    MessageBox.Show(item.SubItems[i].Text);
                }
          }

           (4)移除某项

          foreach (ListViewItem lvi in listView1.SelectedItems)  //选中项遍历
          {
                listView1.Items.RemoveAt(lvi.Index); // 按索引移除
                //listView1.Items.Remove(lvi);   //按项移除
          }   

          (5)行高设置(利用imageList实现)

          ImageList imgList = new ImageList();

          imgList.ImageSize = new Size(1, 20);// 设置行高 20 //分别是宽和高

          listView1.SmallImageList = imgList; //这里设置listView的SmallImageList ,用imgList将其撑大

          (6)清空

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

          this.listView1.Items.Clear();  //只移除所有的项。

 

运行效果:

        ②largeIcon视图:

       this.listView1.View = View.LargeIcon;

       this.listView1.LargeImageList = this.imageList2;

       this.listView1.BeginUpdate();

        for (int i = 0; i < 10; i++)
        {
             ListViewItem lvi = new ListViewItem();

             lvi.ImageIndex = i;

             lvi.Text = "item" + i;

             this.listView1.Items.Add(lvi);
        }

        this.listView1.EndUpdate();

运行效果:

          ③SmallIcon视图:

        this.listView1.View = View.SmallIcon;

        this.listView1.SmallImageList= this.imageList1;

        this.listView1.BeginUpdate();

        for (int i = 0; i < 10; i++)
        {
             ListViewItem lvi = new ListViewItem();

              lvi.ImageIndex = i;

              lvi.Text = "item" + i;

              this.listView1.Items.Add(lvi);
        }

        this.listView1.EndUpdate();

运行效果:

           ④List视图:  

         this.listView1.View = View.List;

         this.listView1.SmallImageList= this.imageList1;

         this.listView1.BeginUpdate();

         for (int i = 0; i < 10; i++)
         {
              ListViewItem lvi = new ListViewItem();

              lvi.ImageIndex = i;

              lvi.Text = "item" + i;

              this.listView1.Items.Add(lvi);
         }

         this.listView1.EndUpdate();

运行效果:

 

 

     三、其它应用

         1、分组:    

  1. { 
  2.      ListViewItem lvi = new ListViewItem(); 
  3.  
  4.      lvi.ImageIndex = i; 
  5.  
  6.      lvi.Text = "item"+i; 
  7.  
  8.      lvi.ForeColor = Color.Blue;  //设置行颜色 
  9.  
  10.      lvi.SubItems.Add("第2列,第"+i+"行"); 
  11.  
  12.      lvi.SubItems.Add("第3列,第"+i+"行"); 
  13.  
  14.      man_lvg.Items.Add(lvi);   //分组添加子项 
  15.  
  16.      // 或 lvi.Group = man_lvg;  //分组添加子项 
  17.  
  18.      this.listView1.Items.Add(lvi); 
  19. } 
       ListViewGroup man_lvg = new ListViewGroup();  //创建男生分组

       man_lvg.Header = "男生";  //设置组的标题。

       //man_lvg.Name = "man";   //设置组的名称。

       man_lvg.HeaderAlignment = HorizontalAlignment.Left;   //设置组标题文本的对齐方式。(默认为Left)

       ListViewGroup women_lvg = new ListViewGroup();  //创建女生分组

       women_lvg.Header = "女生";

       //women_lvg.Name = "women";

       women_lvg.HeaderAlignment = HorizontalAlignment.Center;   //组标题居中对齐

       this.listView1.Groups.Add(man_lvg);    //把男生分组添加到listview中

       this.listView1.Groups.Add(women_lvg);   //把男生分组添加到listview中

       this.listView1.ShowGroups = true;  //记得要设置ShowGroups属性为true(默认是false),否则显示不出分组

       for (int i = 0; i < 5; i++)
       {
           ListViewItem lvi = new ListViewItem();

           lvi.ImageIndex = i;

           lvi.Text = "item"+i;

           lvi.ForeColor = Color.Blue;  //设置行颜色

           lvi.SubItems.Add("第2列,第"+i+"行");

           lvi.SubItems.Add("第3列,第"+i+"行");

           man_lvg.Items.Add(lvi);   //分组添加子项

           // 或 lvi.Group = man_lvg;  //分组添加子项

           this.listView1.Items.Add(lvi);
      }

运行效果:

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

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

分类:   c#
WinForm真入门(14)——ListView控件详解 ListView 是 WinForm 中功能强大的列表控件,适用于 ‌多列数据展示‌ 和 ‌复杂交互场景‌,而 ListBox 更适合 ‌简单选项选择‌。通过合理使用 Details 视图、Columns 和 SubItems,可高效实现文件管理、报表生成等需求‌。开发者需结合场景选择控件,并注意性能优化与交互逻辑的完善。 阅读详情

相关推荐

C#中ListView详解

ListView是一个Windows 列表视图控件,该控件显示可用五种不同视图之一显示项的集合

li3781695的博客 1万+

C# ListView用法详解

一、ListView类           1、常用的基本属性:         (1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。         (2) GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。         (3)AllowColumn

雾里看花 18万+

C# ListView 的用法

在这个示例中,我们将向ListView控件中添加一个具有自定义列的数据。我们将创建一个新的ListView子类,覆盖方法以向控件中添加自定义列。在自定义列的列标题区域中,我们将添加一个新的按钮控件,用于在列标题被单击时触发事件。// 创建自定义列表头customColumnHeader.Text = "操作";// 添加按钮到自定义列表头中btn.Text = "新建客户";// TODO: 在这里添加新客户的代码在这个代码中,我们创建了一个名为的新类,并继承了。

2203_75593971的博客 6621

winform控件之ListView

ListView控件是列表视图控件,说是列表视图,其实它有四种显示方式,Detail,Large,Small和List,使用ListView控件,我们可以让我们的数据以不同的形式进行展示,下面我们通过代码进行学习 1.界面布局 界面布局如图所示,最主要的就是我们的ListView控件,然后有6个Button实现6种功能,一个TextBox用来显示文本,为了显示图片,我们还需要一个Im...

mill_li的博客 1万+

C# WinForm —— 27 28 29 30 ListView 介绍与应用

和ListBox的外观类似,都可以多列显示,但 ListView 功能更强大,提供了5种不同的显示方式。

ChanMon的博客 1801

基于RYU+Mininet的SDN校园网络实战:从零搭建虚拟化实验环境

本文详细介绍了如何利用RYU控制器和Mininet搭建SDN校园网络实验环境,从Ubuntu虚拟机准备到网络拓扑设计,再到关键网络功能实现。通过实战案例展示SDN在校园网络中的应用优势,包括简化配置、提升效率等,为网络工程师和学生提供了一套完整的虚拟化实验方案。

weixin_30872499的博客 458

[ZT]C#来创建和读取XML文档

扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的。做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准地结合,应用于科学计算、电子出版、多媒体制作和电子商务的。C#作为一种新型的程序语言,是.Net框架的一个重要组成部分,他和XML的关系颇深。本文就从一个方面来探讨一下这二者的关系。即:看用C#如何来

ldw701的专栏 825

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

C# Winform ListView用法

添加标题 在 Winfrom 界面中添加一个 ListView 组件,然后点击右上角的箭头,点击编辑列 添加下面标题 此时 ListView 还不能显示这些标题,在视图这里选择 Details 就会如下图所示 显示网格 此时,表格只是一片空白,可以在属性面板中设置,显示网格,如下图 这时,就如下图所示 添加数据到表格中 从网上帖子中复制了一段代码 private void Button_Test_Click(object sender........

熊思雨的博客 1万+

自动换挡频率计的设计精髓:如何用数字电路优雅地解决量程切换难题

本文深入解析了自动换挡频率计的设计精髓,重点探讨如何利用数字电路优雅解决量程切换难题。通过74系列通用数字集成电路构建智能化的自动量程切换系统,详细介绍了状态检测、决策逻辑和档位执行等核心模块的设计方法,并对比了不同实现方案的优劣,为电子测量领域的工程师提供了实用的硬件设计参考。

weixin_27869497的博客 407

XTDrone平台FAST-LIO2与ego-planner结合路径规划部署

之前做了XTDrone平台FAST-LIO2的部署现在将其结合ego-planner进行导航规划,之前查看教程是使用视觉进行定位导航的,现在重新学习。修改advanced_param_xtdrone.xml,这里有视觉信息,不修改会报错显示为输入视觉话题信息。怎么描述 ,感觉当时觉得很难的问题突然就给解决了,一顿复杂,最近勤更新吧,继续开始学习。还有一个想法就是两个rviz结合在一起启动,写了一个demo,融合的不太好感觉额。改为只使用雷达点云,这里仿真的话题是/scan。

m0_56093217的博客 1083

Winform ListView 控件使用详解

Winform ListView 控件使用详解。功能包括该控件的功能、显示数据、切换视图、勾选、分组、鼠标行变色等逻辑。

Kevin Cheng's Yard 3786

开源推荐:5个最实用的AIGC风格迁移项目

随着人工智能技术的飞速发展,AIGC(人工智能生成内容)领域取得了显著的成果。风格迁移作为AIGC中的一个重要分支,旨在将一种图像的风格应用到另一种图像上,创造出具有独特艺术效果的新图像。本文的目的是为读者推荐5个最实用的AIGC风格迁移开源项目,详细介绍这些项目的技术原理、使用方法和应用场景,帮助读者在实际项目中选择合适的工具进行风格迁移。文章的范围涵盖了这些项目的核心概念、算法原理、数学模型、项目实战以及相关的学习资源和未来发展趋势等方面。

AI 原生应用开发的博客 1704

[C#]C# ListView用法详解

/参数1:要查找的文本;this.listView1.Columns.Add("列标题1", 120, HorizontalAlignment.Left);(4)View:获取或设置项在控件中的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为 LargeIcon)//设置组标题文本的对齐方式。//设置组标题文本的对齐方式。this.listView1.Columns.Add("列标题1", 120, HorizontalAlignment.Left);

FL1768317420的博客 5856

5实践报告撰写

一 项目流程 明确标准 确定分析目标 寻找分析数据 清洗数据 描述性分析 诊断性分析 提出建议 撰写报告 二 确定分析目标 什么是你感兴趣的? 什么是你熟悉的? 什么是你擅长的? 1 电商零售行业 商品销量分析 价格分析 评价分析 ...... 2 自媒体行业 广告投放力度分析 广告投放回报分析 不同类型的产品分析 ...... 3 金融行业 股票价格分析 信贷业务违约分析 客户画像分析 ...... ...

waywardG的博客 2833

Android 12.0 以太网和wifi共存的产品wifi优先级设置功能实现

在12.0的系统ROM定制化开发中,在对于一些有线网和wifi共存的产品中,由于某些产品的特殊要求首选使用wifi,而在原生 系统中以太网的优先级高于wifi的,所以就需要从优先级的设置来分析,实现设置优先级的相关功能实现

安卓兼职framework和app工程师的博客 944

C#中listView控件详细使用方法

C#中listView控件详细使用方法

xiaogongzhu001的博客 7293

ABAP 里的 XML 与 JSON 处理,一套从接口落地到 Clean Core 的完整参考

ABAP 里的 XML 和 JSON 处理并不只是几段工具类调用。iXML、sXML、、XCO、、code page conversion、GZIP、对象序列化,这些能力背后对应的是不同的数据规模、访问模式、接口契约和运行时边界。小报文、复杂树结构、需要修改节点,iXML 很顺手。大报文、顺序读写、内存敏感,sXML 更可靠。ABAP 结构和 XML、JSON 之间要做标准转换,是主干。现代 JSON API、ABAP Cloud、命名转换,XCO 值得优先考虑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 224

C#的ListView控件应用

在ListView控件中添加/移除/清空项ListView控件(列表视图控件)显示带图标的项的列表,可以显示大图标、小图标和数据。使用ListView控件可以创建类似Windows资源管理器右窗口的用户界面。ListView控件可以通过View属性设置项在控件中显示的方式。属性值说明Detail各项显示在不同的行上,并带有关于列中所排列的进一步信息。最左边的列包含一个小图标和标签,后面的列包含应用程序指定的子项。列显示一个标头,可以显示列的标题,可以在运行时改变列的大小。

wenchm的博客 6968

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WinForm之ListView 组件

摘要:WinForm中的ListView控件支持多种视图模式(Details、LargeIcon等),适合展示多列数据或图标列表。其核心特性包括:多视图切换、轻量级多列展示、复选框选择和列排序功能。通过ImageList可关联图标资源,Details视图可展示文件大小、日期等子项信息。常见问题包括子项不显示(需匹配列数)、性能优化(使用BeginUpdate)等。相比DataGridView更轻量但不支持单元格编辑,比ListBox功能更丰富。典型应用场景包括文件管理器、图片浏览和批量数据处理等。

weixin_66547608的博客 2203

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# Winform控件-------ListView列表视图

C# Winfrom控件 ListView

weiwei_y的博客 3845

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Winfrom —— listView控件详解

ListView 通过view属性设置listView五种风格1 Largelcon 每一个项为最大化的图标,在图标下面有一行文字。2 SmallIcon 每一项项为最小化的图标,在图标右面有一行文字。3 Details 每个项显示在不同的行上 并带有关于列中所有排列的进一步信息,最左边的列包含了一个小图标和标签4 list 每个项都为一个小图标 右边有一个标签,各项排列在列中 没有列标头5 Tile 每一项都显示一个完整大小的图标,

一个新人博客,愿多多支持。 2445

ListView的用法

一、ListView的简介 <ListView>:用于展示大量数据的一种列表视图,通过上下滑动的方式将屏幕外的数据滚动到屏幕内。数据无法直接传递给ListView,需要适配器Adapter:作用是将各种数据以合适的形式展示到View上。 说白了,就是ListView是一个框架,然后在Adapter中创建视图,再把Adapter放到ListView中。 二、实例:购物商城 构建过程: 1.activity_main.xml中的布局 就两个布局,最上面的购物商城是一个TextVi

m0_54353756的博客 6859

C# ListView用法详解 很完整

一、ListView类           1、常用的基本属性:         (1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。         (2) GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。         (3)AllowColu

ryong1267的博客 4万+
上一篇: vs2008开发中的问题。以及解决方案
下一篇: 一个数组就是一个地址,一个指针就是一个地址的地址
ComputerRookie
博客等级 码龄15年 5粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值