Reputation: 3887
Having an issue loading icons in to my listview. I can get the images to work in large view but not in details, not quite sure what I am doing wrong.
private void CreateList()
{
listView1.View = View.Details;
listView1.Columns.Add("Icon", -2, HorizontalAlignment.Center);
listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
imageList1.ImageSize = new Size(32, 32);
for (int i = 0; i < subKeys.Length; i++)
{
if (subKeys[i].Contains("App"))
{
imagePath = subKeys[i];
if (System.IO.File.Exists(imagePath))
{
imageList1.Images.Add(Image.FromFile(imagePath));
}
numberOfImages++;
}
}
listView1.StateImageList = this.imageList1;
}
Upvotes: 4
Views: 36357
Reputation: 13670
Change
listView1.StateImageList = this.imageList1;
To
listView1.SmallImageList = this.imageList1;
And make sure that you are setting the ImageIndex
, or ImageKey
properties for each ListItem.
listItem.ImageIndex = 0; // or,
listItem.ImageKey = "myImage";
Upvotes: 10
Reputation: 4546
Try this code:
DirectoryInfo dir = new DirectoryInfo(@"c:\myPicutures"); //change and get your folder
foreach (FileInfo file in dir.GetFiles())
{
try
{
this.imageList1.Images.Add(Image.FromFile(file.FullName));
}
catch{
Console.WriteLine("This is not an image file");
}
}
this.listView1.View = View.LargeIcon;
this.imageList1.ImageSize = new Size(32, 32);
this.listView1.LargeImageList = this.imageList1;
//or
//this.listView1.View = View.SmallIcon;
//this.listView1.SmallImageList = this.imageList1;
for (int j = 0; j < this.imageList1.Images.Count; j++)
{
ListViewItem item = new ListViewItem();
item.ImageIndex = j;
this.listView1.Items.Add(item);
}
You can even add 2nd column, and "add" a file name.
Upvotes: 0