C# ListView用法详解
简介
ListView是C# Winforms中常用的控件之一,它可以像表格一样展示数据,同时还可以进行排序、过滤等操作。本篇攻略将会详细讲解C# ListView的使用方法,包括如何创建、添加数据、排序、过滤、单元格格式化等内容。
创建ListView
1. 使用设计器创建ListView
在Visual Studio的窗体设计器中,可以直接从面板拖拽ListView控件到窗体上。
2. 动态创建ListView
使用C#代码创建ListView的方法如下:
ListView listView = new ListView();
// 设置ListView的属性
listView.View = View.Details;
listView.Dock = DockStyle.Fill;
// 添加ListView到Form窗体
this.Controls.Add(listView);
添加数据
1. 直接添加数据
listView.Items.Add("item1");
listView.Items.Add("item2");
listView.Items.Add("item3");
2. 添加带子项的数据
// 添加带子项的数据
ListViewItem item = new ListViewItem(new string[]
{
"item1",
"subitem1",
"subitem2"
});
listView.Items.Add(item);
排序
1. 手动排序
// 设置ListView的Sorting属性为Ascending、Descending或None
listView.Sorting = SortOrder.Ascending;
// 手动排序
listView.Sort();
2. 自动排序
// 设置ListView的ListViewItemSorter为排序器
listView.ListViewItemSorter = new MyListViewSorter();
// 调用ListView的Sort方法自动排序
listView.Sort();
其中,MyListViewSorter继承于IComparer接口,可以自定义实现ListView排序规则。
过滤
// 使用筛选器过滤数据
listView.Items.Cast<ListViewItem>()
.Where(item => !item.Text.Contains("item1"))
.ToList()
.ForEach(item => item.Remove());
单元格格式化
// 格式化ListView的单元格
listView.Columns[1].ListViewSubItem
.ForEach(subitem => subitem.BackColor = Color.Yellow);
示例1:显示文件夹中的所有文件
private void showFiles(string folderPath)
{
// 清空ListView中原有的数据
listView.Items.Clear();
// 获取文件夹中的文件
DirectoryInfo folder = new DirectoryInfo(folderPath);
List<FileInfo> fileList = folder.GetFiles().ToList();
// 使用ListView展示文件
fileList.ForEach(file =>
{
ListViewItem item = new ListViewItem(new string[]
{
file.Name,
file.FullName,
file.Length.ToString()
});
listView.Items.Add(item);
});
}
示例2:按文件大小排序
private class FileSizeSorter : IComparer
{
public int Compare(object x, object y)
{
ListViewItem item1 = (ListViewItem)x;
ListViewItem item2 = (ListViewItem)y;
return (int)(new FileInfo(item1.SubItems[1].Text).Length
- new FileInfo(item2.SubItems[1].Text).Length);
}
}
private void sortByFileSize()
{
// 使用自定义的排序器按文件大小排序
listView.ListViewItemSorter = new FileSizeSorter();
listView.Sort();
}
以上就是C# ListView的使用方法。需要注意的是,如果需要 ListView控件的更高级操作,例如添加复选框或者添加自定义控件等等,需要使用 WPF 中的 ListView 控件来实现,因为该控件更为灵活,但是,本篇攻略未包括 WPF 中 ListView控件的使用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# listview用法详解 - Python技术站