知识准备:
(1) ListView中包含一个ListViewItems的集合,即ListView的属性Items的add()方法只能添加ListViewItem类型的值
(一般需要添加自己的消息类型的话,需要新创建类,并继承ListViewItem类型)
(2) ListView有一个SmallImageList属性和LargeImageList属性,分别指向大图标视图(LargeIcon)、小图标视图(SmallIcon)中的图标集。一般在窗体中先添加ImageList组件,并添加图标即可,然后使SmallImageList、LargeImageList分别指向各自对应的ImageList即可。
(为了实现大小图标的转换,一般添加两个ImageList组件,而且大小图标的索引必须相同)
(3) ListView的属性View来控制显示的类型,View是一个枚举类型,其值包括LargeIcon(大图标)、SmallIcon(小图标)、List(列表)、Detail(详细)、Title(标题)
分别如下图所示:
图1 小图标
图2 大图标
图3 列表
图4 详细
(4) ListViewItems允许设置一个用于显示的Text属性,另一个属性SubItems则包含详细试图(Detail)中显示的文本(用Add()方法添加)。
(5) ListView在Detail(详细)视图,会显示ListView的Columns属性。ListViewItem的Text属性对应第一列,SubItems集对应之后的列
示例:
简便方法:
ListViewItem item = new ListViewItem();
item.Text = "United States";
item.SubItems.Add("Dollar");
item.ImageIndex = 0;
cntrylistView.Items.Add(item);
这是一个C#高级编程中的例子
(1)创建所需的显示类型,必须继承ListVewItem
public class CountryItem : System.Windows.Forms.ListViewItem
{
private string _cntryName;
public CountryItem(string countryName, string currency)
{
_cntryName = countryName;
//在ListView控件中显示国家的名称
base.Text = _cntryName;
//在Detail视图中显示
base.SubItems.Add(currency);
}
public string CountryName
{
get { return _cntryName; }
(2)在ListView中添加信息
cntrylistView.Items.Add(new CountryItem("United States", "Dollar"));
cntrylistView.Items[0].ImageIndex = 0;
cntrylistView.Items.Add(new CountryItem("Greate Britain", "Pound"));
cntrylistView.Items[1].ImageIndex = 1;
cntrylistView.Items.Add(new CountryItem("Canada", "Dollar"));
cntrylistView.Items[2].ImageIndex = 2;
cntrylistView.Items.Add(new CountryItem("China", "RenMinBi"));
cntrylistView.Items[3].ImageIndex = 3;
注意:先添加CountryItem到控件中后,才设置CountryItem的ImageIndex属性(从ListViewItem继承而来的)