ListViewItem Class

Definition

Represents an item in a ListView control.

public ref class ListViewItem : ICloneable, System::Runtime::Serialization::ISerializable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.ListViewItemConverter))]
[System.Serializable]
public class ListViewItem : ICloneable, System.Runtime.Serialization.ISerializable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.ListViewItemConverter))>]
[<System.Serializable>]
type ListViewItem = class
    interface ICloneable
    interface ISerializable
Public Class ListViewItem
Implements ICloneable, ISerializable
Inheritance
ListViewItem
Attributes
Implements

Examples

The following code example creates a ListView control with three ListViewItem objects specified and three ListViewItem.ListViewSubItem objects specified for each item. The example also creates ColumnHeader objects to display the subitems in details view. Two ImageList objects are also created in the code example to provide images for the ListViewItem objects. These ImageList objects are added to the LargeImageList and SmallImageList properties. The example uses the following properties in creating the ListView control:

You need to add the code to a Form and call the method created in the example from the constructor or another method on the form. The example requires that images named MySmallImage1, MySmallImage2, MyLargeImage1, and MyLargeImage2 are located in the root directory of drive C.

private:
   void CreateMyListView()
   {
      // Create a new ListView control.
      ListView^ listView1 = gcnew ListView;
      listView1->Bounds = Rectangle(Point(10,10),System::Drawing::Size( 300, 200 ));

      // Set the view to show details.
      listView1->View = View::Details;

      // Allow the user to edit item text.
      listView1->LabelEdit = true;

      // Allow the user to rearrange columns.
      listView1->AllowColumnReorder = true;

      // Display check boxes.
      listView1->CheckBoxes = true;

      // Select the item and subitems when selection is made.
      listView1->FullRowSelect = true;

      // Display grid lines.
      listView1->GridLines = true;

      // Sort the items in the list in ascending order.
      listView1->Sorting = SortOrder::Ascending;

      // Create three items and three sets of subitems for each item.
      ListViewItem^ item1 = gcnew ListViewItem( "item1",0 );

      // Place a check mark next to the item.
      item1->Checked = true;
      item1->SubItems->Add( "1" );
      item1->SubItems->Add( "2" );
      item1->SubItems->Add( "3" );
      ListViewItem^ item2 = gcnew ListViewItem( "item2",1 );
      item2->SubItems->Add( "4" );
      item2->SubItems->Add( "5" );
      item2->SubItems->Add( "6" );
      ListViewItem^ item3 = gcnew ListViewItem( "item3",0 );

      // Place a check mark next to the item.
      item3->Checked = true;
      item3->SubItems->Add( "7" );
      item3->SubItems->Add( "8" );
      item3->SubItems->Add( "9" );

      // Create columns for the items and subitems.
      // Width of -2 indicates auto-size.
      listView1->Columns->Add( "Item Column", -2, HorizontalAlignment::Left );
      listView1->Columns->Add( "Column 2", -2, HorizontalAlignment::Left );
      listView1->Columns->Add( "Column 3", -2, HorizontalAlignment::Left );
      listView1->Columns->Add( "Column 4", -2, HorizontalAlignment::Center );

      //Add the items to the ListView.
      array<ListViewItem^>^temp1 = {item1,item2,item3};
      listView1->Items->AddRange( temp1 );

      // Create two ImageList objects.
      ImageList^ imageListSmall = gcnew ImageList;
      ImageList^ imageListLarge = gcnew ImageList;

      // Initialize the ImageList objects with bitmaps.
      imageListSmall->Images->Add( Bitmap::FromFile( "C:\\MySmallImage1.bmp" ) );
      imageListSmall->Images->Add( Bitmap::FromFile( "C:\\MySmallImage2.bmp" ) );
      imageListLarge->Images->Add( Bitmap::FromFile( "C:\\MyLargeImage1.bmp" ) );
      imageListLarge->Images->Add( Bitmap::FromFile( "C:\\MyLargeImage2.bmp" ) );

      //Assign the ImageList objects to the ListView.
      listView1->LargeImageList = imageListLarge;
      listView1->SmallImageList = imageListSmall;
      
      // Add the ListView to the control collection.
      this->Controls->Add( listView1 );
   }
private void CreateMyListView()
{
    // Create a new ListView control.
    ListView listView1 = new ListView();
    listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200));

    // Set the view to show details.
    listView1.View = View.Details;
    // Allow the user to edit item text.
    listView1.LabelEdit = true;
    // Allow the user to rearrange columns.
    listView1.AllowColumnReorder = true;
    // Display check boxes.
    listView1.CheckBoxes = true;
    // Select the item and subitems when selection is made.
    listView1.FullRowSelect = true;
    // Display grid lines.
    listView1.GridLines = true;
    // Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending;
                
    // Create three items and three sets of subitems for each item.
    ListViewItem item1 = new ListViewItem("item1",0);
    // Place a check mark next to the item.
    item1.Checked = true;
    item1.SubItems.Add("1");
    item1.SubItems.Add("2");
    item1.SubItems.Add("3");
    ListViewItem item2 = new ListViewItem("item2",1);
    item2.SubItems.Add("4");
    item2.SubItems.Add("5");
    item2.SubItems.Add("6");
    ListViewItem item3 = new ListViewItem("item3",0);
    // Place a check mark next to the item.
    item3.Checked = true;
    item3.SubItems.Add("7");
    item3.SubItems.Add("8");
    item3.SubItems.Add("9");

    // Create columns for the items and subitems.
    // Width of -2 indicates auto-size.
    listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);

    //Add the items to the ListView.
    listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3});

    // Create two ImageList objects.
    ImageList imageListSmall = new ImageList();
    ImageList imageListLarge = new ImageList();

    // Initialize the ImageList objects with bitmaps.
    imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
    imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
    imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
    imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));

    //Assign the ImageList objects to the ListView.
    listView1.LargeImageList = imageListLarge;
    listView1.SmallImageList = imageListSmall;

    // Add the ListView to the control collection.
    this.Controls.Add(listView1);
}
Private Sub CreateMyListView()
    ' Create a new ListView control.
    Dim listView1 As New ListView()
    listView1.Bounds = New Rectangle(New Point(10, 10), New Size(300, 200))

    ' Set the view to show details.
    listView1.View = View.Details
    ' Allow the user to edit item text.
    listView1.LabelEdit = True
    ' Allow the user to rearrange columns.
    listView1.AllowColumnReorder = True
    ' Display check boxes.
    listView1.CheckBoxes = True
    ' Select the item and subitems when selection is made.
    listView1.FullRowSelect = True
    ' Display grid lines.
    listView1.GridLines = True
    ' Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending

    ' Create three items and three sets of subitems for each item.
    Dim item1 As New ListViewItem("item1", 0)
    ' Place a check mark next to the item.
    item1.Checked = True
    item1.SubItems.Add("1")
    item1.SubItems.Add("2")
    item1.SubItems.Add("3")
    Dim item2 As New ListViewItem("item2", 1)
    item2.SubItems.Add("4")
    item2.SubItems.Add("5")
    item2.SubItems.Add("6")
    Dim item3 As New ListViewItem("item3", 0)
    ' Place a check mark next to the item.
    item3.Checked = True
    item3.SubItems.Add("7")
    item3.SubItems.Add("8")
    item3.SubItems.Add("9")

    ' Create columns for the items and subitems.
    ' Width of -2 indicates auto-size.
    listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left)
    listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left)
    listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left)
    listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center)

    'Add the items to the ListView.
    listView1.Items.AddRange(New ListViewItem() {item1, item2, item3})

    ' Create two ImageList objects.
    Dim imageListSmall As New ImageList()
    Dim imageListLarge As New ImageList()

    ' Initialize the ImageList objects with bitmaps.
    imageListSmall.Images.Add(Bitmap.FromFile("C:\MySmallImage1.bmp"))
    imageListSmall.Images.Add(Bitmap.FromFile("C:\MySmallImage2.bmp"))
    imageListLarge.Images.Add(Bitmap.FromFile("C:\MyLargeImage1.bmp"))
    imageListLarge.Images.Add(Bitmap.FromFile("C:\MyLargeImage2.bmp"))

    'Assign the ImageList objects to the ListView.
    listView1.LargeImageList = imageListLarge
    listView1.SmallImageList = imageListSmall

    ' Add the ListView to the control collection.
    Me.Controls.Add(listView1)
End Sub

Remarks

The ListView control is similar to a ListBox in that it displays a list of items. The main difference is that the ListView control provides a number of different ways items can be viewed by the user. The ListViewItem class defines the appearance, behavior, and data associated with an item that is displayed in the ListView control. ListViewItem objects can be displayed in the ListView control in one of four different views. Items can be displayed as large or small icons or as small icons in a vertical list. Items can also have subitems that contain information that is related to the parent item. The fourth view style, details view, allows you to display the item and its subitems in a grid with column headers that can be used to identify the information being displayed in a subitem.

Most of the properties of the ListViewItem class provide ways to change the display of the item in the ListView control it is associated with. The BackColor, ForeColor, and Font properties allow you to change how the text of the item is displayed in the ListView control. The ImageIndex property allows you to specify the image to load from the ImageList that is assigned to the ListView control (by setting the LargeImageList or SmallImageList properties of the ListView). Items can display check boxes in order to obtain item choices from the user in a way similar to a CheckedListBox control. You can use the Checked property to determine if an item is checked, or to select or clear the check box at run time. Items can display any number of subitems when the View property of the associated ListView control is set to Details and columns are defined in the ListView.ColumnHeaderCollection of the ListView control. You can add subitems to an item by calling the Add method of the ListViewItem.ListViewSubItemCollection class. The SubItems property allows you to gain access to the ListViewItem.ListViewSubItemCollection class and its members.

Some of the properties and methods of the ListViewItem class are item-specific versions of properties and methods in the ListView control. For example, the EnsureVisible method is similar to the ListView version of the method, but the ListViewItem version affects only the current item.

The ListViewItem class also provides methods that are not versions of ListView methods. The BeginEdit method places the item's text into edit mode so the user can change the item's text (when the LabelEdit property of the ListView control is set to true). The Clone method allows you to create copies of existing ListViewItem objects to reuse in other ListView controls.

Constructors

ListViewItem()

Initializes a new instance of the ListViewItem class with default values.

ListViewItem(ListViewGroup)

Initializes a new instance of the ListViewItem class and assigns it to the specified group.

ListViewItem(ListViewItem+ListViewSubItem[], Int32)

Initializes a new instance of the ListViewItem class with the image index position of the item's icon and an array of ListViewItem.ListViewSubItem objects.

ListViewItem(ListViewItem+ListViewSubItem[], Int32, ListViewGroup)

Initializes a new instance of the ListViewItem class with the image index position of the item's icon and an array of ListViewItem.ListViewSubItem objects, and assigns the item to the specified group.

ListViewItem(ListViewItem+ListViewSubItem[], String)

Initializes a new instance of the ListViewItem class with the specified subitems and image.

ListViewItem(ListViewItem+ListViewSubItem[], String, ListViewGroup)

Initializes a new instance of the ListViewItem class with the specified subitems, image, and group.

ListViewItem(SerializationInfo, StreamingContext)

Initializes a new instance of the ListViewItem class with the specified serialization information and streaming context.

ListViewItem(String)

Initializes a new instance of the ListViewItem class with the specified item text.

ListViewItem(String, Int32)

Initializes a new instance of the ListViewItem class with the specified item text and the image index position of the item's icon.

ListViewItem(String, Int32, ListViewGroup)

Initializes a new instance of the ListViewItem class with the specified item text and the image index position of the item's icon, and assigns the item to the specified group.

ListViewItem(String, ListViewGroup)

Initializes a new instance of the ListViewItem class with the specified item text and assigns it to the specified group.

ListViewItem(String, String)

Initializes a new instance of the ListViewItem class with the specified text and image.

ListViewItem(String, String, ListViewGroup)

Initializes a new instance of the ListViewItem class with the specified text, image, and group.

ListViewItem(String[])

Initializes a new instance of the ListViewItem class with an array of strings representing subitems.

ListViewItem(String[], Int32)

Initializes a new instance of the ListViewItem class with the image index position of the item's icon and an array of strings representing subitems.

ListViewItem(String[], Int32, Color, Color, Font)

Initializes a new instance of the ListViewItem class with the image index position of the item's icon; the foreground color, background color, and font of the item; and an array of strings representing subitems.

ListViewItem(String[], Int32, Color, Color, Font, ListViewGroup)

Initializes a new instance of the ListViewItem class with the image index position of the item's icon; the foreground color, background color, and font of the item; and an array of strings representing subitems. Assigns the item to the specified group.

ListViewItem(String[], Int32, ListViewGroup)

Initializes a new instance of the ListViewItem class with the image index position of the item's icon and an array of strings representing subitems, and assigns the item to the specified group.

ListViewItem(String[], ListViewGroup)

Initializes a new instance of the ListViewItem class with an array of strings representing subitems, and assigns the item to the specified group.

ListViewItem(String[], String)

Initializes a new instance of the ListViewItem class with the specified item and subitem text and image.

ListViewItem(String[], String, Color, Color, Font)

Initializes a new instance of the ListViewItem class with the subitems containing the specified text, image, colors, and font.

ListViewItem(String[], String, Color, Color, Font, ListViewGroup)

Initializes a new instance of the ListViewItem class with the subitems containing the specified text, image, colors, font, and group.

ListViewItem(String[], String, ListViewGroup)

Initializes a new instance of the ListViewItem class with subitems containing the specified text, image, and group.

Properties

BackColor

Gets or sets the background color of the item's text.

Bounds

Gets the bounding rectangle of the item, including subitems.

Checked

Gets or sets a value indicating whether the item is checked.

Focused

Gets or sets a value indicating whether the item has focus within the ListView control.

Font

Gets or sets the font of the text displayed by the item.

ForeColor

Gets or sets the foreground color of the item's text.

Group

Gets or sets the group to which the item is assigned.

ImageIndex

Gets or sets the index of the image that is displayed for the item.

ImageKey

Gets or sets the key for the image that is displayed for the item.

ImageList

Gets the ImageList that contains the image displayed with the item.

IndentCount

Gets or sets the number of small image widths by which to indent the ListViewItem.

Index

Gets the zero-based index of the item within the ListView control.

ListView

Gets the ListView control that contains the item.

Name

Gets or sets the name associated with this ListViewItem.

Position

Gets or sets the position of the upper-left corner of the ListViewItem.

Selected

Gets or sets a value indicating whether the item is selected.

StateImageIndex

Gets or sets the index of the state image (an image such as a selected or cleared check box that indicates the state of the item) that is displayed for the item.

SubItems

Gets a collection containing all subitems of the item.

Tag

Gets or sets an object that contains data to associate with the item.

Text

Gets or sets the text of the item.

ToolTipText

Gets or sets the text shown when the mouse pointer rests on the ListViewItem.

UseItemStyleForSubItems

Gets or sets a value indicating whether the Font, ForeColor, and BackColor properties for the item are used for all its subitems.

Methods

BeginEdit()

Places the item text into edit mode.

Clone()

Creates an identical copy of the item.

Deserialize(SerializationInfo, StreamingContext)

Deserializes the item.

EnsureVisible()

Ensures that the item is visible within the control, scrolling the contents of the control, if necessary.

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindNearestItem(SearchDirectionHint)

Finds the next item from the ListViewItem, searching in the specified direction.

GetBounds(ItemBoundsPortion)

Retrieves the specified portion of the bounding rectangle for the item.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetSubItemAt(Int32, Int32)

Returns the subitem of the ListViewItem at the specified coordinates.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
Remove()

Removes the item from its associated ListView control.

Serialize(SerializationInfo, StreamingContext)

Serializes the item.

ToString()

Returns a string that represents the current object.

Explicit Interface Implementations

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Serializes the item.

Applies to

See also