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 Common7Graphics 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 runtime
This was first published in January 2003