程序员的知识教程库

网站首页 > 教程分享 正文

ListView控件的详细使用(listview控件有什么作用)

henian88 2024-08-26 15:32:53 教程分享 4 ℃ 0 评论

在ADO.NET中我们经常会用到ListView和DataGridView这两个控件,今天详细介绍ListView控件.


ListView控件

一、5种视图:

LargeIcon(大图标)、SmallIcon(小图标)、List(列表,无列表头)、Details(报表,有列表头)、平铺(显示多条详细信息)

二、常用属性及自定义:

1.FullRowSelect属性:返回或设置一个值,决定是否选择整行。(默认false)

语法:

Object.FullRowSelect [ = Boolean]

2.GridLines属性:返回或设置一个值,决定在报表视图中ListView控件是否显示网格线。

语法:

	Object.GridLines [ = Boolean]

例如:

listView1.FullRowSelect = False;
this.listView1.GridLines = False;

3.HeaderStyle属性:获取或设置列标头样式。

属性值:

  • Clickable:单击列表头时可以执行排序等操作。
  • NonClickable:列标头不响应鼠标单击。
  • None:不显示列标头。

语法:

	Object.HeaderStyle[ = Chickable or NonClickable or None]

例如:

ListView1.HeaderStyle = Chickable;

4.TopItem:获取或设置控件中的第一个可见项,可用于定位

例如:

ListViewItem foundItem = this.listView1.FindItemWithText(this.TextBox2.Text,True,0);
//查找目标文本 ,是否子项同时查找 ,设置开始查找位置
if(foundItem != null)
{
 this.ListView1.TopItem = foundItem; //定位
 foundItem.BackColor = Color.Blue;
}

三、常用方法及使用方法

  1. BeginUpdate:(开始更新)有效避免控件闪烁,提高速度(插入数据量过大时)
  2. EndUpdate:结束更新。
  3. EnsureVisible:列表视图滚动定位到指定索引项的选项行。
this.listView1.BeginUpdate(); 
/*执行内容*/
this.listView1.EndUpdate(); 

四、常用事件及使用方法

  1. BeforeLabelEdit:当用户开始编辑项的标签时执行事件。
  2. AfterLabelEdit:当用户编辑结束项的标签时执行事件。要求:listView1.LabelEdit = true.
  3. ColumnClick:当用户在列表视图控件中单击列标头时发生。

ListView添加数据项

BeginUpdate()和EndUpdate()经常一起使用。

//2.添加数据项 * *************************
//数据更新,UI暂时挂起,直到EndUpdate绘制控件
 this.listView1.BeginUpdate(); 
 for (int i = 0; i < 10; i++)
 {
 ListViewItem lvi = new ListViewItem();
 lvi.ImageIndex = i;
 lvi.Text = (i + 1).ToString();
 lvi.SubItems.Add("剑云锋" + i + "号");
 if (i % 2 == 0)
 {
 lvi.SubItems.Add("男");
 }
 else
 {
 lvi.SubItems.Add("女");
 }
 lvi.SubItems.Add((i + 15).ToString());
 lvi.SubItems.Add("" + i + "行");
 this.listView1.Items.Add(lvi);
 this.listView1.EndUpdate();
 }

遍历显示ListView数据项

foreach (ListViewItem item in this.listView1.Items)
{
 for (int i = 0; i < item.SubItems.Count; i++)
 {
 MessageBox.Show(item.SubItems[i].Text);
 }
}

遍历查找移除某项

foreach (ListViewItem lvi in listView1.SelectedItems) //选中项遍历
{
 listView1.Items.RemoveAt(lvi.Index); // 按索引移除
 //listView1.Items.Remove(lvi); //按项移除
} 

清空ListView数据

this.listView1.Clear(); //从控件中移除所有子项+表头(列名)。
this.listView1.Items.Clear(); //只移除所有的子项。

ListView分组:

例如:创建男女分组 。

//1.创建列表头*****************************
 ColumnHeader ch = new ColumnHeader();
 ch.Text = "Id"; //设置列表头
 ch.Width = 50;
 ch.TextAlign = HorizontalAlignment.Left;
 this.listView1.Columns.Add(ch);
 ColumnHeader ch1 = new ColumnHeader();
 ch1.Text = "Name";
 ch1.Width = 100;
 ch1.TextAlign = HorizontalAlignment.Center;
 this.listView1.Columns.Add(ch1);
 // this.listView1.Columns.Add("Name",100,HorizontalAlignment.Center);
 this.listView1.Columns.Add("Gender", 100, HorizontalAlignment.Center);
 this.listView1.Columns.Add("Age", 100, HorizontalAlignment.Center);
 //分组
 ListViewGroup male_lvg = new ListViewGroup();
 male_lvg.Header = "男";
 male_lvg.Name = "Male";
 male_lvg.HeaderAlignment = HorizontalAlignment.Center;
 this.listView1.Groups.Add(male_lvg);
 this.listView1.ShowGroups = true;
 for (int i = 0; i < 10; i++)
 {
 ListViewItem lvi = new ListViewItem();
 lvi.ImageIndex = i;
 lvi.Text = (i + 1).ToString();
 lvi.ForeColor = Color.Blue; //设置行颜色
 if (i % 2 == 0)
 {
 lvi.SubItems.Add("剑云锋" + i + "号");
 }
 if (i % 2 == 0)
 {
 lvi.SubItems.Add("男");
 }
 male_lvg.Items.Add(lvi); //分组添加子项
 // 或 lvi.Group = male_lvg; //分组添加子项
 this.listView1.Items.Add(lvi);
 }
 //*********************
 ListViewGroup female_lvg = new ListViewGroup();
 female_lvg.Header = "女";
 female_lvg.Name = "female";
 male_lvg.HeaderAlignment = HorizontalAlignment.Center;
 this.listView1.Groups.Add(female_lvg);
 this.listView1.ShowGroups = true;
 for (int i = 0; i < 10; i++)
 {
 ListViewItem lvi = new ListViewItem();
 lvi.ImageIndex = i;
 lvi.Text = (i + 1).ToString();
 lvi.ForeColor = Color.Red; //设置行颜色
 if (i % 2 != 0)
 {
 lvi.SubItems.Add("剑云锋" + i + "号");
 }
 if (i % 2 != 0)
 {
 lvi.SubItems.Add("女");
 }
 female_lvg.Items.Add(lvi); //分组添加子项
 this.listView1.Items.Add(lvi);
 }

DataGridView控件

关于DataGridView控件可以参考DataGridView控件的使用

本文部分内容参考网络,如有侵权,请联系修改,谢谢。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表