简介

KryptonListView 是增强型 ListView 控件,替代标准 System.Windows.Forms.ListView。它保留 Details(多列表头)、LargeIcon、SmallIcon、List、Tile 五种视图模式,同时以 Krypton 主题渲染表头、行选中与悬停效果,适合展示多列数据、文件列表等场景。

KryptonListView 示例截图
KryptonListView Details 模式多列展示

常用属性

属性类型说明
ViewView视图模式(Details / LargeIcon / SmallIcon / List / Tile)
Columns集合列集合(Details 模式下的表头)
Items集合行项集合(ListViewItem)
SelectedItems集合选中的行集合
MultiSelectbool是否允许多行选择
FullRowSelectbool点击行任意位置即选中整行
GridLinesbool是否显示网格线(Details 模式)
CheckBoxesbool每行前是否显示勾选框
HideSelectionbool失去焦点时是否隐藏选中高亮
SmallImageListImageList小图标列表
StateCommon.Item.Back.Color1Color行背景色

快速上手

Details 模式多列表格

using Krypton.Toolkit;

var listView = new KryptonListView();
listView.Dock = DockStyle.Fill;
listView.View = View.Details;
listView.FullRowSelect = true;
listView.GridLines = true;
listView.HideSelection = false;

// 定义列
listView.Columns.Add("文件名", 180);
listView.Columns.Add("大小", 80);
listView.Columns.Add("修改日期", 140);

// 添加行
var item = new ListViewItem("报表.xlsx");
item.SubItems.Add("128 KB");
item.SubItems.Add("2026-07-31");
listView.Items.Add(item);

listView.Items.Add(new ListViewItem(new[] { "说明.txt", "2 KB", "2026-07-30" }));

this.Controls.Add(listView);

响应选中与双击

// 选中行改变
listView.SelectedIndexChanged += (s, e) =>
{
    if (listView.SelectedItems.Count > 0)
        Console.WriteLine(listView.SelectedItems[0].Text);
};

// 双击打开
listView.DoubleClick += (s, e) =>
{
    if (listView.SelectedItems.Count > 0)
        OpenFile(listView.SelectedItems[0].Text);
};

进阶用法

带图标的行与勾选框

// 关联图标列表
var images = new ImageList();
images.Images.Add("doc", Properties.Resources.icon_doc);
listView.SmallImageList = images;

var item2 = new ListViewItem("合同.docx", "doc");  // 第二参数为图标 key
listView.Items.Add(item2);

// 启用行勾选框并收集勾选项
listView.CheckBoxes = true;
listView.ItemChecked += (s, e) =>
    Console.WriteLine($"{e.Item.Text} 勾选:{e.Item.Checked}");

列排序

// 点击表头排序(简单文本排序)
listView.ColumnClick += (s, e) =>
{
    listView.Sorting = listView.Sorting == SortOrder.Ascending
        ? SortOrder.Descending
        : SortOrder.Ascending;
    listView.ListViewItemSorter = new ColumnSorter(e.Column, listView.Sorting);
    listView.Sort();
};
提示:需要编辑单元格、数据绑定或复杂表格功能时,请改用 KryptonDataGridView;ListView 更适合只读的文件/项目列表展示。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonListView Examples/

包含:五种视图模式切换、图标行、勾选框、列排序演示。

相关控件