ListView子项目中的图像

如何为listview子项添加图像而不是文本? 喜欢http://sofzh.miximages.com/c%23/2mzz6s6.png ?

这里通常是我如何添加一个字符串:

ListViewItem item = new ListViewItem("A"); item.SubItems.Add("B"); item.SubItems.Add("C"); listView1.Items.AddRange(new ListViewItem[] { item }); 

我正在使用带有WinForms的.NET 2.0。 另外,请不要将我链接到具有高级.NET listview控件的文章。 我想坚持使用MSVC中的标准版。

如果您需要将图标放在第一列中,则可以通过创建包含要显示的图像的ImageList ,将其分配给ListViewSmallImageList属性并为该项设置适当的ImageIndex来轻松完成。 像这样:

 listView1.SmallImageList = YourImageList; ListViewItem lvi = new ListViewItem(); lvi.SubItems.Add("A"); lvi.SubItems.Add("B"); lvi.SubItems.Add("C"); lvi.ImageIndex = 2; // this will display YourImageList.Images[2] in the first column listView1.Items.Add(lvi); 

在WPF中,您可以轻松地做到这一点,

在Windows窗体中,您可以阅读

http://www.codeproject.com/KB/combobox/imagelistbox.aspx

作为你的样本。

主要想法是

首先,将列表框设置为ownerdraw

然后,在itemdraw事件中(或者是drawitem?)抓取你的图像并在分配的空间中绘制它( e.Graphics.DrawImage ),然后绘制旁边项目的测试( e.Graphics.DrawString