WinForm ListView 列表控件

一、ListView 核心概述

ListView 是 WinForm 常用列表展示控件,用于展示多条结构化数据,类似文件资源管理器效果,支持五种展示视图,常搭配 ImageList 图标集合实现图文列表。

核心结构层级(必考)

  • ListView:整个列表容器控件

  • Column 列:表头(仅 Details 详情模式生效)

  • ListViewItem 项:每一行主数据(第一列内容)

  • SubItems 子项:该行后续单元格多列数据


二、ListView 五种显示视图(View 枚举)

通过 View 属性设置展示样式,默认值:LargeIcon(大图标)

属性值

说明

Details

详细视图,标准的二维表格,第一行为表头(最常用)

LargeIcon(默认值)

大图标,每一项显示为一个大图标

SmallIcon

小图标,每一项显示为一个小图标

List

列表,每项单行展示

Tile

平铺,显示大图标,并在右侧显示详细信息

核心注意:仅 Details 详情模式 支持显示表头、网格线、整行选中效果。


三、ListView 常用属性(官方完整版)

属性

说明

Name

控件的名称,用于后台调用控件

Items

包含控件中所有行项的集合

Columns

控件中显示的所有列标题的集合

View

控件的显示视图(五种枚举样式)

LargeImageList

大图标视图所使用的 ImageList 图标集合

SmallImageList

小图标视图所使用的 ImageList 图标集合

GridLines

是否显示行列网格线(仅详情模式生效)

MultiSelect

是否允许鼠标多选列表项

SelectedItems

获取控件中所有已选中的项

FullRowSelect

单击单元格是否选中整行及所有子项


四、ListView 常用方法(官方完整版)

方法

说明

Clear

从控件中移除所有项和列,清空ListView


五、ListView 常用事件(官方完整版)

事件

说明

Click

在单击ListView控件时触发

SelectedIndexChanged

当选定项发生更改时触发

六、完整实战代码(逐行考点注释)

using System;
using System.Windows.Forms;

namespace _02ListView
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // 1. 绑定大图标的图片集合
            listView2.LargeImageList = imageList1;
            // 2. 绑定小图标的图片集合
            listView2.SmallImageList = imageList2;

            // 3. 设置为【详情表格模式】(支持多列)
            listView2.View = View.Details;

            // 4. 添加表头列
            listView2.Columns.Add("名称");
            listView2.Columns.Add("修改时间");
            listView2.Columns.Add("类型");
            listView2.Columns.Add("大小");

            // 5. 创建第一行数据项(主项,第一列内容)
            ListViewItem item1 = new ListViewItem("win");
            // 给当前行添加多列子数据
            item1.SubItems.Add("2026/2/1");
            item1.SubItems.Add("文件夹");
            item1.SubItems.Add("20G");

            // 6. 创建第二行
            ListViewItem item2 = new ListViewItem("C盘");
            item2.SubItems.Add("2026/2/1");
            item2.SubItems.Add("文件夹");
            item2.SubItems.Add("202G");

            // 7. 创建第三行,设置Name用于按键删除
            ListViewItem item3 = new ListViewItem("D盘");
            item3.Name = "ss"; // 设置唯一标识Key
            item3.SubItems.Add("2026/2/1");
            item3.SubItems.Add("文件夹");
            item3.SubItems.Add("208G");

            // 8. 将所有行添加到ListView控件中显示
            listView2.Items.Add(item1);
            listView2.Items.Add(item2);
            listView2.Items.Add(item3);
        }
    }
}

七、三种删除行方式(必考)

// 1. 根据对象直接删除指定项
listView2.Items.Remove(item1);

// 2. 根据索引删除(索引从0开始)
listView2.Items.RemoveAt(1);

// 3. 根据Name键值删除(最灵活、推荐)
listView2.Items.RemoveByKey("ss");

删除考点总结

  • Remove(对象):精准删除指定项

  • RemoveAt(索引):按位置删除

  • RemoveByKey(Name):必须提前给 Item 设置 Name 属性


八、核心知识点提炼

  • ListViewItem:代表一整行数据,构造参数为【第一列文本】

  • SubItems:该行后面所有列的文本,数量必须和表头对应

  • Columns.Add():添加表头,仅 Details 模式生效

  • ImageList搭配:大小图标需分别绑定两个ImageList

  • Name属性:用于标识唯一行,实现按键删除、查找


九、高频易错点汇总

  • 不设置 View.Details,表头完全不显示

  • ListViewItem 构造文本是第一列,后面列全部靠 SubItems 添加

  • SubItems 数量少于表头列数会缺列,多于则无效

  • RemoveByKey 删除必须提前赋值 Item.Name,否则删不掉

  • 大小图标 ImageList 要分开绑定,不能混用


十、ListView 专属背诵口诀

列表视图五种样,详情表格最常用;

表头Columns先添加,Item是行Sub是列;

大小图标绑图集,视图Details才列表;

删值三种索引名,灵活移除不用愁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值