You can add items to list views in code, as in the ListViews example on the CD-ROM. In this case, when the form loads, I'll add four items to a list view. As you might expect, you do this with the Add method of the list view's Items collection, which can take the text of the new item and an image index in an ImageList for an icon to display for the item.
In the report mode (also called details mode), a list view can display column headers and fields in each of the columns, as you see in Figure 10.3. You can create column headers with the Columns collection of the list view, and add fields to a ListViewItem object with its SubItems collection. List views display their items with small icons (16×16 pixels), except for large icon mode, which uses large (32×32 pixel) icons. To assign images to list items, you can use the SmallImageList property to assign an image list to a list view, which means the first item will use the first image in the image list, the second item the second image, and so on. You also can assign an image list to the LargeImageList property for the large icon view; in the ListViews example, I'm using icons that come with Visual Basic in the Common7\Graphics\icons directory. (Each icon file, which ends with .ico, has both a large and small version of the icon stored in it.)
Here's the code where I add list view items to a list view, ListView1, in the ListViews example when the main form first loads; note that when you create a column header, you give the text for the column header, as well as the width of the column, and the alignment of its contained text:
Private Sub Form1_Load(ByVal eventSender As System.Object, _ ByVal eventArgs As System.EventArgs) Handles MyBase.Load ListView1.Columns.Add("Field 1", ListView1.Width / 4, _ HorizontalAlignment.Left) ListView1.Columns.Add("Field 2", ListView1.Width / 4, _ HorizontalAlignment.Left) ListView1.Columns.Add("Field 3", ListView1.Width / 4, _ HorizontalAlignment.Left) ListView1.Columns.Add("Field 4", ListView1.Width / 4, _ HorizontalAlignment.Left) Dim ListItem1 As ListViewItem ListItem1 = ListView1.Items.Add("Item 1", 1) ListView1.Items(0).SubItems.Add("Field 2") ListView1.Items(0).SubItems.Add("Field 3") ListView1.Items(0).SubItems.Add("Field 4") Dim ListItem2 As ListViewItem ListItem2 = ListView1.Items.Add("Item 2", 1) ListView1.Items(1).SubItems.Add("Field 2") ListView1.Items(1).SubItems.Add("Field 3") ListView1.Items(1).SubItems.Add("Field 4") Dim ListItem3 As ListViewItem ListItem2 = ListView1.Items.Add("Item 3", 1) ListView1.Items(2).SubItems.Add("Field 2") ListView1.Items(2).SubItems.Add("Field 3") ListView1.Items(2).SubItems.Add("Field 4") ListView1.SmallImageList = ImageList1 ListView1.LargeImageList = ImageList2 End Sub
You can see the results of this code in Figure 10.3. That figure shows the list view operating in details mode, which you can select with the combo box at lower right. See the next topic for the details.