Изображения в подпункте ListView - PullRequest
5 голосов
/ 26 ноября 2011

Как добавить изображение вместо текста для подэлемента списка? Как 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 });

Я использую .NET 2.0 с WinForms. Кроме того, не связывайте меня со статьями с превосходными элементами управления списком .NET. Я хочу придерживаться стандартного в MSVC.

Ответы [ 2 ]

10 голосов
/ 26 ноября 2011

Если вам нужно, чтобы значок находился в первом столбце, это можно легко сделать, создав 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);
0 голосов
/ 26 ноября 2011

В WPF вы можете легко это сделать,

В форме Windows вы можете прочитать

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

в качестве образца.

Основная идея:

Сначала установите для вашего списка значение ownerdraw

Затем в событии itemdraw (или это drawitem?) Возьмите свое изображение и нарисуйте его ввыделенное пространство ( e.Graphics.DrawImage ), затем проведите проверку элемента рядом с ним ( e.Graphics.DrawString )

...