Search code examples
c#.netlistviewimagelistdetailview

Filling a ListView with an ImageList using View.Details


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;
}

Solution

  • 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";