5

如何为列表视图子项添加图像而不是文本?喜欢http://i44.tinypic.com/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 中的标准。

4

2 回答 2

10

如果您需要将图标放在第一列中,则可以通过创建ImageList要显示的图像来轻松完成,将其分配给该项目的SmallImageList属性ListView并设置适合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);
于 2011-11-26T05:10:02.387 回答
-3

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

在 Windows 窗体中,您可以阅读

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

作为您的样本。

主要思想是

首先,将您的列表框设置为 ownerdraw

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

于 2011-11-26T04:26:45.400 回答