一、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才列表;
删值三种索引名,灵活移除不用愁。

4082

被折叠的 条评论
为什么被折叠?



