列表视图(ListView)控件是Windows列表视图控件,用于显示带图标的项的列表。
创建列表视图控件
为列表视图控件添加项有以下两种方法。
(1)直接单击控件上方的小箭头,然后再单击“编辑项”,就会弹出“ListViewItem集合编辑器”对话框。
![](https://img-blog.csdnimg.cn/905e140f09494071872cd2cea255a1cf.png)
![](https://img-blog.csdnimg.cn/d4c19f55be5c441689a1eafb1c60bb80.png)
通过Text和Font属性,可以修改项的名称和字体大小。
![](https://img-blog.csdnimg.cn/eba9d41b151341cfa8a8ab1804d33f92.png)
(2)通过使用控件的Items属性的Add方法和RemoveAt方法,实现项的添加和删除。
编写程序,在ListView控件中添加和删除项。
![](https://img-blog.csdnimg.cn/82187aeb241c46b8b6ffe1b23273b28a.png)
![](https://img-blog.csdnimg.cn/a19d2b789d7b462dabc19fa475d70cad.png)
添加两个button控件,button1和button2分别是添加和移除。
![](https://img-blog.csdnimg.cn/f891156b98934b21b2010a6ef929d4ce.png)
添加TextBox控件
![](https://img-blog.csdnimg.cn/aca79a8725794ee3b04df2478209ba28.png)
![](https://img-blog.csdnimg.cn/e7fce10625e6424ea9b85a092ed087d2.png)
在button1_Click事件,并调用Add方法,将创建好的项添加到集合中;
在button2_Click事件,首先对ListView控件中的项进行判断,如果集合中还存在项,就调用RemoveAt方法,删除鼠标选中的项。
![](https://img-blog.csdnimg.cn/e2e70f33442d40e0a106235934d08d74.png)
运行结果如下:
![](https://img-blog.csdnimg.cn/2c5a35d5a91e49348d3992a5debab545.png)
输入文字,点击添加
![](https://img-blog.csdnimg.cn/e8bfd4722e924a65906e66550d90d46c.png)
点击某一个文字,再点击移除
![](https://img-blog.csdnimg.cn/7e9adf7a8b5e4cdb9ea083c1a2d28bf0.png)
![](https://img-blog.csdnimg.cn/88cfbe3b0eff47af91cb656d4b46e7ce.png)
使用列表视图控件
ListView控件可以通过View属性显示可用五种不同视图之一显示的项集合。
View属性
属性值 | 说明 |
LargeIcon | 在项文本旁显示大图标,如果控件足够大,则项显示在多列中 |
SmallIcon | 除显示小图标外,其他方面与大图标视图模式相同 |
List | 显示小图标,但总是显示在单列中 |
Details | 在多列中显示项 |
Tile | 每个项都显示为一个完整大小的图标,在它的左边带项标签和子项信息。(仅支持Windows XP/Server 2003) |
1、为ListView控件的项分组
使用ListView控件的分组功能可以用分组形式显示相关组项。在屏幕上,这些组由包含组标题的水平组标头分隔。
为ListView控件的项分组有以下两种方法。
(1)ListView控件的项添加完成之后,直接单击控件上方的小箭头。
![](https://img-blog.csdnimg.cn/4caeb8694d3b4d2d972927c672a2ed90.png)
然后再单击“编辑组”,就会弹出“ListViewGroup集合编辑器”对话框,并通过Header属性,对ListViewGroup1的组命名为“亚洲”,对ListViewGroup2的组命名为“欧洲”。
![](https://img-blog.csdnimg.cn/91764fee6edd42f0b048b213ad3c9aa7.png)
![](https://img-blog.csdnimg.cn/ffb3e53459234518befc7dd29469fcdc.png)
![](https://img-blog.csdnimg.cn/31c60f0c66af4637a6b7a84e400e1d13.png)
接着在ListViewItem集合编辑器中,选择Group属性,为ListView控件的添加项选择分组。
![](https://img-blog.csdnimg.cn/08eee42e09fa4885abc5a65132c26654.png)
![](https://img-blog.csdnimg.cn/12d574c142224d69a17d2acc21117623.png)
![](https://img-blog.csdnimg.cn/b4915a40ca65412d88678103eb1a908b.png)
![](https://img-blog.csdnimg.cn/ab57e4d6e6384f128d14bcbecc89720d.png)
![](https://img-blog.csdnimg.cn/de3e13b7587546f0a7cfdcd0d74f0225.png)
![](https://img-blog.csdnimg.cn/721547b15b8b4a468378f9b11072eef3.png)
(2)用编程的方式可以为ListView控件中的项分组,还可以将一个组中的项移至另一组中。
编写程序,为ListView控件中的项分组。
在Form1窗体中添加ListView控件
![](https://img-blog.csdnimg.cn/68cb62f8778d41cb97a7bbe865e8e3d5.png)
![](https://img-blog.csdnimg.cn/ac097e0f64e24deeac25c5710d2cdf1e.png)
在Form1_Load事件中为ListView控件编写代码:
![](https://img-blog.csdnimg.cn/46e20e67d13f4781bf6b8d6c16b9bab2.png)
![](https://img-blog.csdnimg.cn/f4c8a677bdb3420396c1c122e4baf727.png)
完整代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//设置listView1控件的View属性
listView1.View = View.SmallIcon;
//向控件中添加项目
listView1.Items.Add("中国");
listView1.Items.Add("日本");
listView1.Items.Add("韩国");
listView1.Items.Add("美国");
listView1.Items.Add("英国");
//为listView1控件建立两个组
listView1.Groups.Add(new ListViewGroup("亚洲", HorizontalAlignment.Left));
listView1.Groups.Add(new ListViewGroup("欧洲", HorizontalAlignment.Left));
//将listView1控件中的索引值 0、1、2的项添加到第一个分组
listView1.Items[0].Group = listView1.Groups[0];
listView1.Items[1].Group = listView1.Groups[0];
listView1.Items[2].Group = listView1.Groups[0];
//将listView1控件中的索引值 3、4的项添加到第一个分组
listView1.Items[3].Group = listView1.Groups[1];
listView1.Items[4].Group = listView1.Groups[1];
}
}
}
运行结果错误,没注意发生Form1_Load事件:
![](https://img-blog.csdnimg.cn/762e1bd9cfd74b33846ff838b0c9b16a.png)
完整代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
//设置listView1控件的View属性
listView1.View = View.SmallIcon;
//向控件中添加项目
listView1.Items.Add("中国");
listView1.Items.Add("日本");
listView1.Items.Add("韩国");
listView1.Items.Add("美国");
listView1.Items.Add("英国");
//为listView1控件建立两个组
listView1.Groups.Add(new ListViewGroup("亚洲", HorizontalAlignment.Left));
listView1.Groups.Add(new ListViewGroup("欧洲", HorizontalAlignment.Left));
//将listView1控件中的索引值 0、1、2的项添加到第一个分组
listView1.Items[0].Group = listView1.Groups[0];
listView1.Items[1].Group = listView1.Groups[0];
listView1.Items[2].Group = listView1.Groups[0];
//将listView1控件中的索引值 3、4的项添加到第一个分组
listView1.Items[3].Group = listView1.Groups[1];
listView1.Items[4].Group = listView1.Groups[1];
}
}
}
运行结果如下:
![](https://img-blog.csdnimg.cn/2ce3d30eb7824562b7642cbde95a053c.png)
2、为ListView控件中的项添加图标
如果用户要为ListView控件中的项添加图标,由需要与ImageList控件结合使用。这里需要注意,由于ImageList控件是一个组件,所以是没有可视化界面的。
为ListView控件中的项添加图标具体步骤如下:
(1)在Form窗体中添加ListView控件并添加相应的项,然后添加ImageList控件。选择ImageList控件的Images属性,会弹出“图像集合编辑器”对话框,再单击“添加”按钮,就可以将文件夹中的图片放入成员中。
![](https://img-blog.csdnimg.cn/2d2d0b6b84e3491cbdf6fe381872a642.png)
![](https://img-blog.csdnimg.cn/225b795aed964e4a8457b76886d7a1ba.png)
![](https://img-blog.csdnimg.cn/1492a29a608b4f6f954d39a74aa31524.png)
![](https://img-blog.csdnimg.cn/02d7b4a6d4bb4d6880a7ff51e8bf4d2d.png)
(2)找到ListView控件的SmallImageList、LargeImageList和StateImageList属性,并将它们设置为想要使用的现在imageList1组件
![](https://img-blog.csdnimg.cn/3ce900d2b4bb4903bb9519840e88b3cc.png)
![](https://img-blog.csdnimg.cn/90df22a61762449d8ad1bfe77a13df83.png)
![](https://img-blog.csdnimg.cn/3c51e64d530142e6a8a37656d189a48e.png)
(3)打开LiveView控件的“ListViewItem集合编辑器”对话框,选择ImageIndex属性,依次为成员中的项添加图标。
![](https://img-blog.csdnimg.cn/22d16d56191a48deb3397fb6a4622df5.png)
![](https://img-blog.csdnimg.cn/2c86ef1b52e541579571a2082c3d0572.png)
![](https://img-blog.csdnimg.cn/0a5ec40292fa49a6a20399fabf857942.png)
3、为ListView控件中的项添加列表
直接单击控件上方的小箭头,然后再单击“编辑列”,就会弹出 “Column Header集合编辑器”对话框。
![](https://img-blog.csdnimg.cn/4a82a67f4aaa429b9a9cf8da00f133e6.png)
![](https://img-blog.csdnimg.cn/b25b271e91794dc0bd64ca620325cfca.png)
在Column Header集合编辑器中,用户可以根据国家的属性,在成员中添加项的四个列表头,分别为chID、chEngName、chCountry和chCaptial,用于表示序号、英文名称、国家和首都。这些都可以在Name属性和Text属性中修改。
![](https://img-blog.csdnimg.cn/32892feb088c4e33b2a8ecf236175f04.png)
![](https://img-blog.csdnimg.cn/5ada7323e4214775882461bf06765e02.png)
![](https://img-blog.csdnimg.cn/5c2ead90960845f3a9732c0c126a27d9.png)
编写程序,在Listview控件中添加五个国家的项,并将这五个国家的序号、英文名称、国家和首都设计成列表的形式。然后以List、Detals和Title属性的形式显示。
在Form1窗体中添加ListView控件
![](https://img-blog.csdnimg.cn/a3b586e8e9c3449bb698bc701895caf8.png)
![](https://img-blog.csdnimg.cn/73428e7729d7407c8051b3f7f9a09624.png)
添加一个ImageList控件 ,用来设置图标的大小
![](https://img-blog.csdnimg.cn/29c58054b3094e098101384bedf6676b.png)
![](https://img-blog.csdnimg.cn/390daaee81a4457788d0cd4b59467277.png)
在窗体中添加Label控件和ComboBox控件,用来提示List、Detals和Tile属性是三种
![](https://img-blog.csdnimg.cn/6503d43cceec474eba34507aa5a75250.png)
![](https://img-blog.csdnimg.cn/0ac3e88fa9254e42884855e6f47f4898.png)
![](https://img-blog.csdnimg.cn/4533e711424b4f2f9d2829d675ea8436.png)
![](https://img-blog.csdnimg.cn/8b852f9be24b467e9f12372307cca169.png)
![](https://img-blog.csdnimg.cn/5b0dceeb79854769ba736702fffeda56.png)
![](https://img-blog.csdnimg.cn/aa5dd7fa4e354d31a0166049c88d4e8b.png)
![](https://img-blog.csdnimg.cn/5441c64022f841d5a40d596a19206ae0.png)
完整代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[,] myCountry = { { "China","中国","北京"},{"Japan","日本","东京" },{"Korea","韩国","首尔" },{"America","美国","华盛顿" },{"England","英国","伦敦" } };
for(int i=0;i<myCountry.Length/3;i++)
{
ListViewItem mylvi = listView1.Items.Add(i.ToString());
mylvi.ImageIndex = i;
mylvi.SubItems.Add(myCountry[i, 0]);
mylvi.SubItems.Add(myCountry[i, 1]);
mylvi.SubItems.Add(myCountry[i, 2]);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(comboBox1.SelectedItem.ToString()=="Details")
{
listView1.View = View.Details;
}
if (comboBox1.SelectedItem.ToString() == "List")
{
listView1.View = View.List;
}
if (comboBox1.SelectedItem.ToString() == "Tile")
{
listView1.View = View.Tile;
}
}
}
}
在代码中,首选定义一个三行三列的二维数组,并通过for循环遍历出来;然后在comboBox1_SelectedIndexChanged事件中,判断comboBox1控件中的项是否与List、Details和Tile属性相等,如果相等,就按照该属性的方法排列ListView控件中的项。
运行结果:
![](https://img-blog.csdnimg.cn/bb64f767350c4854892ecdf89ed174f8.png)
在ListView控件中的项添加列表之后,再次运行结果,还是不行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)