ListView子项中的图像
如何为listview子项添加图像而不是文本?像http://i44.tinypic.com/2mzz6s6.png?ListView子项中的图像
这里通常是我如何添加一个字符串:
ListViewItem item = new ListViewItem("A");
item.SubItems.Add("B");
item.SubItems.Add("C");
listView1.Items.AddRange(new ListViewItem[] { item });
我使用.NET 2.0的WinForms。另外,请不要将我链接到具有高级.NET listview控件的文章。我想坚持MSVC中的标准。
如果你需要的图标是在第一列,那么它可以很容易地通过创建一个完成ImageList
带有要显示的图像,将其分配给ListView
的SmallImageList
属性,并为该项目设置适当的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?)抓住你的图像和分配的空间绘制(如Graphics.DrawImage),然后绘制项目的测试旁边(e.Graphics.DrawString)
您应该阅读ImageListBox的代码并编写自己的代码。 NoWay for you在你的列表框中显示图像,而无需自定义你的列表框(WinForm) –
静止是关于'ListView'而不是'ListBox'。 –
谢谢。非常优雅的解决方案。 – david
@ pseudonym27,如果你想让图标以'LargeIcons'模式显示,你还应该在'ListView'的'LargeImageList'属性中分配一个'ImageList'(上面例子中的'YourImageList')。 –