ListView控件 - Winform
ListView 控件是 C# WinForm 中用于以列表形式展示数据的常用控件,它支持多种视图模式,能灵活展示不同类型的数据。以下为你详细介绍并举例说明。
1. 主要功能与特点
- 数据展示多样:支持四种视图模式,分别为
LargeIcon(大图标视图)、SmallIcon(小图标视图)、List(列表视图)和Details(详细信息视图)。在Details视图下,可显示多列数据,类似表格形式,每列可自定义表头。 - 数据项操作便捷:能方便地添加、删除、修改和选择数据项。可以对单个或多个数据项进行操作,并且支持拖放操作,方便实现数据的重新排列等功能。
- 事件丰富:提供了多个事件,如
ItemSelectionChanged事件,当列表项的选择状态发生改变时触发;DoubleClick事件,当用户双击列表项时触发,便于开发者实现相应的交互逻辑。
2. 常用属性
View:获取或设置ListView控件的视图模式,取值为上述提到的四种视图模式之一。Columns:用于管理Details视图模式下的列集合。通过此属性可添加、移除或修改列的标题、宽度等信息。Items:包含ListView中的所有数据项,每个数据项为ListViewItem类型。通过该属性可对数据项进行添加、删除、遍历等操作。MultiSelect:获取或设置一个值,指示是否可以选择多项。若设为true,用户可通过按住Ctrl键或Shift键来选择多个列表项。
3. 常用方法
Items.Add(ListViewItem item):向ListView中添加一个ListViewItem数据项。Items.Remove(ListViewItem item):从ListView中移除指定的ListViewItem数据项。Items.Clear():清空ListView中的所有数据项。
4. 常用事件
ItemSelectionChanged:当列表项的选择状态改变时触发。例如,用户选择或取消选择某个列表项时,该事件将被激发。DoubleClick:当用户双击ListView中的某一项时触发。可在此事件处理程序中实现如打开详细信息页面等功能。
5. 示例代码
以下示例展示了如何使用 ListView 控件在 Details 视图模式下展示学生信息,并处理相关事件。
using System;
using System.Windows.Forms;
namespace ListViewExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 设置ListView的视图为详细信息视图
listView1.View = View.Details;
// 添加列
listView1.Columns.Add("学号", 80);
listView1.Columns.Add("姓名", 100);
listView1.Columns.Add("年龄", 60);
// 添加数据项
ListViewItem item1 = new ListViewItem("001");
item1.SubItems.Add("张三");
item1.SubItems.Add("20");
listView1.Items.Add(item1);
ListViewItem item2 = new ListViewItem("002");
item2.SubItems.Add("李四");
item2.SubItems.Add("22");
listView1.Items.Add(item2);
// 为ItemSelectionChanged事件添加处理程序
listView1.ItemSelectionChanged += ListView1_ItemSelectionChanged;
// 为DoubleClick事件添加处理程序
listView1.DoubleClick += ListView1_DoubleClick;
}
private void ListView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
MessageBox.Show($"你选择了: {e.Item.Text}");
}
else
{
MessageBox.Show($"你取消选择了: {e.Item.Text}");
}
}
private void ListView1_DoubleClick(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem selectedItem = listView1.SelectedItems[0];
MessageBox.Show($"你双击了 {selectedItem.SubItems[1].Text} 的信息");
}
}
}
}
在上述示例中:
- 将
ListView的视图模式设置为Details,并添加了三列,分别用于显示学号、姓名和年龄。 - 创建了两个
ListViewItem数据项,并为每个数据项添加了相应的子项,然后将数据项添加到ListView中。 - 为
ItemSelectionChanged事件添加处理程序,当列表项选择状态改变时,弹出消息框提示选择或取消选择的信息。 - 为
DoubleClick事件添加处理程序,当用户双击列表项时,弹出消息框显示双击的学生姓名相关信息。
通过这些操作,可以利用 ListView 控件实现功能丰富的数据展示与交互。

浙公网安备 33010602011771号