Q. How do I add images in listview by using VB.NET?

Asked by afrozkp. Answered by the Wonk on January 13, 2003


Adding images to most controls on a Form is the same. For example, imagine a form with a tree view, a list view and a toolbar, all needing images, as shown in Figure 1.



Figure 1: Controls without images

Each of these controls takes images from an ImageList component. To add one to the form, drag it from the Windows Forms section of the Toolbox. You can add any number of images to an ImageList component using Property Browser on the ImageList object’s Images property. Pressing the “…” button brings up the Image Collection Editor, as shown in Figure 2.



Figure 2: The Image Collection Editor

Notice that Figure 2 shows several images added to the ImageList component (I got them from the Common7\Graphics folder under my VS.NET installation). Once you have images in an image list, you can assign them to items in the controls. First, you’ll need to assign an ImageList to the object (a drop-down list will show all of the ImageList objects on the form). Second, you can assign items from the selected ImageList by setting an index into the list of images for a particular item.


For example, assigning an image list to a ListView class requires setting the ImageList for the SmallImageList and/or the LargeImageList, which dictates which image to use based on what view of the ListView is being shown, i.e. Small Icon or Large Icon. Second, assigning an image from to an item is a matter of bringing up the ListViewItem Collection Editor by pressing the “…” button next to the Items property and setting the ImageIndex, as shown in Figure 3.



Figure 3: Assigning an image to an item

Images can be set programmatically when items are adding by setting the image index property of the new item:


Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
  Handles MyBase.Load

  ' Add a new item to the ListView

  Dim item As ListViewItem = ListView1.Items.Add("Item6")


  ' Set the index into the image list

  item.ImageIndex = 6

End Sub


When images are added from an image list, they show at runtime, as shown in Figure 4.



Figure 4: Images from the image list shown at run-time


I have feedback on this Ask The Wonk answer