详解C# WinForm ListView的基本操作攻略
介绍
C# WinForm中的ListView是一种非常常用的用于显示数据的控件,本攻略将详细讲解如何使用C# WinForm ListView实现基本操作,包括:
- ListView的基本属性设置
- 列表视图、图标视图、详情视图和小图标视图的展示方式
- 添加、删除和编辑ListView的项
- ListView的排序功能
ListView基本属性设置
ListView作为一个用于展示数据的控件,需要进行一些基本的属性设置,包括:
- View属性:设置ListView的显示方式,有列表视图、图标视图、详情视图和小图标视图四种方式可以选择。
- CheckBoxes属性:设置ListView中是否显示CheckBox。
- FullRowSelect属性:设置是否当用户单击ListView中的任意一列时,整个行是否被选中。
- MultiSelect属性:设置是否允许ListView中多选。
- GridLines属性:设置表格是否显示网格线。
- HideSelection属性:设置ListView失去焦点时是否隐藏选中项的选择状态。
// 设置ListView的View属性
listView1.View = View.Details;
// 设置ListView中显示CheckBox
listView1.CheckBoxes = true;
// 设置全行选择功能
listView1.FullRowSelect = true;
// 设置ListView允许多选
listView1.MultiSelect = true;
// 设置表格显示网格线
listView1.GridLines = true;
// 设置ListView失去焦点后隐藏选中项的选择状态
listView1.HideSelection = false;
ListView的展示方式
ListView有四种展示方式:列表视图、图标视图、详情视图和小图标视图。可以通过设置ListView的View属性来设置展示方式。
列表视图
列表视图显示为一列数据,可以根据需要设置表头和行数据。
// 设置视图为列表视图
listView1.View = View.List;
// 添加表头
listView1.Columns.Add("姓名");
listView1.Columns.Add("性别");
listView1.Columns.Add("年龄");
// 添加行数据
listView1.Items.Add(new ListViewItem(new string[] { "张三", "男", "26" }));
listView1.Items.Add(new ListViewItem(new string[] { "李四", "女", "20" }));
listView1.Items.Add(new ListViewItem(new string[] { "王五", "男", "22" }));
图标视图
图标视图以图标的形式展示数据,可以设置每个项的图标和文本。
// 设置视图为图标视图
listView1.View = View.LargeIcon;
// 添加项
listView1.Items.Add(new ListViewItem("张三", 0));
listView1.Items.Add(new ListViewItem("李四", 1));
listView1.Items.Add(new ListViewItem("王五", 2));
// 设置每个项的图标
ImageList imageList = new ImageList();
imageList.Images.Add(Properties.Resources.male);
imageList.Images.Add(Properties.Resources.female);
imageList.Images.Add(Properties.Resources.unknown);
listView1.LargeImageList = imageList;
// 设置每个项的文本
listView1.Items[0].SubItems.Add("男");
listView1.Items[0].SubItems.Add("26");
listView1.Items[1].SubItems.Add("女");
listView1.Items[1].SubItems.Add("20");
listView1.Items[2].SubItems.Add("男");
listView1.Items[2].SubItems.Add("22");
详情视图
详情视图以表格的形式展示数据,可以设置每列的表头和行数据,还可以设置每列的宽度和对齐方式。
// 设置视图为详情视图
listView1.View = View.Details;
// 添加表头
listView1.Columns.Add("姓名", 100, HorizontalAlignment.Left);
listView1.Columns.Add("性别", 50, HorizontalAlignment.Center);
listView1.Columns.Add("年龄", 50, HorizontalAlignment.Center);
// 添加行数据
listView1.Items.Add(new ListViewItem(new string[] { "张三", "男", "26" }));
listView1.Items.Add(new ListViewItem(new string[] { "李四", "女", "20" }));
listView1.Items.Add(new ListViewItem(new string[] { "王五", "男", "22" }));
小图标视图
小图标视图类似于图标视图,但是图标更小。
// 设置视图为小图标视图
listView1.View = View.SmallIcon;
// 添加项
listView1.Items.Add(new ListViewItem("张三", 0));
listView1.Items.Add(new ListViewItem("李四", 1));
listView1.Items.Add(new ListViewItem("王五", 2));
// 设置每个项的图标
ImageList imageList = new ImageList();
imageList.ImageSize = new Size(16, 16);
imageList.Images.Add(Properties.Resources.male);
imageList.Images.Add(Properties.Resources.female);
imageList.Images.Add(Properties.Resources.unknown);
listView1.SmallImageList = imageList;
添加、删除和编辑ListView的项
ListView除了展示数据外,还具有添加、删除和编辑数据的功能。
添加项
使用ListView的Items集合的Add方法可以添加新的项。
// 添加项
listView1.Items.Add("张三");
listView1.Items.Add("李四");
listView1.Items.Add("王五");
删除项
使用ListView的Items集合中的Remove或者RemoveAt方法可以删除ListView的项。
// 删除指定项
listView1.Items.RemoveAt(0);
// 删除所有项
listView1.Items.Clear();
编辑项
使用ListViewItem的SubItems属性可以对项的子项进行编辑。
// 添加项
listView1.Items.Add(new ListViewItem(new string[] { "张三", "男", "26" }));
// 编辑子项
listView1.Items[0].SubItems[1].Text = "女";
listView1.Items[0].SubItems[2].Text = "20";
ListView的排序功能
ListView提供了通过列头点击进行数据排序的功能。
// 添加表头
listView1.Columns.Add("姓名");
listView1.Columns.Add("性别");
listView1.Columns.Add("年龄");
// 添加行数据
listView1.Items.Add(new ListViewItem(new string[] { "张三", "男", "26" }));
listView1.Items.Add(new ListViewItem(new string[] { "李四", "女", "20" }));
listView1.Items.Add(new ListViewItem(new string[] { "王五", "男", "22" }));
// 开启排序功能
listView1.FullRowSelect = true;
listView1.ListViewItemSorter = new Sorter(0, SortOrder.Ascending);
// 给列头添加点击事件
listView1.ColumnClick += ColumnClick;
// 设置排序方法
private void ColumnClick(object sender, ColumnClickEventArgs e)
{
Sorter sorter = (Sorter)listView1.ListViewItemSorter;
sorter.Column = e.Column;
if (sorter.Order == SortOrder.Ascending)
{
sorter.Order = SortOrder.Descending;
}
else
{
sorter.Order = SortOrder.Ascending;
}
listView1.Sort();
}
// 自定义排序类
public class Sorter : IComparer
{
private int col;
private SortOrder order;
public Sorter(int col, SortOrder order)
{
this.col = col;
this.order = order;
}
public int Compare(object x, object y)
{
int result = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
if (order == SortOrder.Descending)
{
result = -result;
}
return result;
}
public int Column
{
set
{
col = value;
}
get
{
return col;
}
}
public SortOrder Order
{
set
{
order = value;
}
get
{
return order;
}
}
}
以上就是使用C# WinForm ListView实现基本操作的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C# winform ListView的基本操作 - Python技术站