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 控件实现功能丰富的数据展示与交互。

posted @ 2025-11-30 16:11  hycedu  阅读(1)  评论(0)    收藏  举报