2016-04-01 51 views
1

'daki bir liste görünümünün ilk sütunundaki resimler, bir projede küçük bir sorunla karşılaşıyorum.C# WinForms

Resimde gördüğünüz gibi, sınıftaki bir nesne listesinden bazı verilerle birlikte bir ListView sahibim. Bu sınıf ayrıca, kullanıcı tarafından seçilen bir görüntünün yolunu tutan bir özniteliğe sahiptir; bu, ListView'un ilk sütununda gösterilmesi gereken, teste diyor.

ImageList imgs = new ImageList(); 
imgs.ImageSize = new Size(40, 40); 
foreach (user list in Global.userslist) 
{ 
    imgs.Images.Add(Image.FromFile(list.Photo)); 
} 
listview1.SmallImageList = imgs; 
foreach (user list in Global.userslist) 
{ 
    imageList1.Images.Add(Image.FromFile(list.Photo)); 
    listview1.Items.Add(new ListViewItem(new string[] { "teste", Convert.ToString(list.Id), lista.Name, list.Birthday.ToString("dd/MM/yyyy") })); 
} 
+0

Neden bunun yerine 'DataGridView' kullanmıyor musunuz? –

+0

Bunu düşündüm, Ama bu ListView ile zaten yapılmış çok fazla iş var ve DataGridView ile kümülatif aramaların nasıl yapılacağını öğrenemiyorum. –

+1

Yukarıdaki koddaki probleminiz, öğenizin 'ImageIndex 'değerini belirlemeyi unutuyor. –

cevap

1

görüntüyü göstermek için öğe için ImageIndex veya ImageKey özelliğini ayarlayın olmalıdır:

enter image description here

Aşağıdaki kodu denedim.

ListViewItem'un constructor dizinine veya anahtarına geçebilirsiniz. Ayrıca, ImageIndex veya ImageKey özelliğini kullanarak değeri atayabilirsiniz.

Örnek Kodunuzda

, sen ImageList ekleyerek görüntü anahtarını ayarlayabilirsiniz: öğelerini oluştururken Sonra

imgs.Images.Add(list.Id.ToString(), Image.FromFile(list.Photo)); 

, kullanmak ImageKey:

listview1.Items.Add(new ListViewItem(new string[] { ... ... }, list.Id.ToString())); 
+0

Çok teşekkürler. Sorun çözüldü. –

+0

Bir şey değil. –

İlgili konular