0 out of 6 rated this helpful - Rate this topic

ListViewItem Class

Represents an item in a ListView control.

System.Object
  System.Windows.Forms.ListViewItem

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
[SerializableAttribute]
[TypeConverterAttribute(typeof(ListViewItemConverter))]
public class ListViewItem : ICloneable, 
	ISerializable

The ListViewItem type exposes the following members.

  Name Description
Public method ListViewItem() Initializes a new instance of the ListViewItem class with default values.
Public method ListViewItem(ListViewGroup) Initializes a new instance of the ListViewItem class and assigns it to the specified group.
Public method ListViewItem(String) Initializes a new instance of the ListViewItem class with the specified item text.
Public method ListViewItem(String[]) Initializes a new instance of the ListViewItem class with an array of strings representing subitems.
Public method 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.
Public method ListViewItem(ListViewItem.ListViewSubItem[], String) Initializes a new instance of the ListViewItem class with the specified subitems and image.
Protected method ListViewItem(SerializationInfo, StreamingContext) Initializes a new instance of the ListViewItem class with the specified serialization information and streaming context.
Public method 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.
Public method ListViewItem(String, String) Initializes a new instance of the ListViewItem class with the specified text and image.
Public method ListViewItem(String, ListViewGroup) Initializes a new instance of the ListViewItem class with the specified item text and assigns it to the specified group.
Public method 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.
Public method ListViewItem(String[], String) Initializes a new instance of the ListViewItem class with the specified item and subitem text and image.
Public method 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.
Public method 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.
Public method ListViewItem(ListViewItem.ListViewSubItem[], String, ListViewGroup) Initializes a new instance of the ListViewItem class with the specified subitems, image, and group.
Public method 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.
Public method ListViewItem(String, String, ListViewGroup) Initializes a new instance of the ListViewItem class with the specified text, image, and group.
Public method 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.
Public method ListViewItem(String[], String, ListViewGroup) Initializes a new instance of the ListViewItem class with subitems containing the specified text, image, and group.
Public method 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.
Public method 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.
Public method 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.
Public method 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.
Top
  Name Description
Public property BackColor Gets or sets the background color of the item's text.
Public property Bounds Gets the bounding rectangle of the item, including subitems.
Public property Checked Gets or sets a value indicating whether the item is checked.
Public property Focused Gets or sets a value indicating whether the item has focus within the ListView control.
Public property Font Gets or sets the font of the text displayed by the item.
Public property ForeColor Gets or sets the foreground color of the item's text.
Public property Group Gets or sets the group to which the item is assigned.
Public property ImageIndex Gets or sets the index of the image that is displayed for the item.
Public property ImageKey Gets or sets the key for the image that is displayed for the item.
Public property ImageList Gets the ImageList that contains the image displayed with the item.
Public property IndentCount Gets or sets the number of small image widths by which to indent the ListViewItem.
Public property Index Gets the zero-based index of the item within the ListView control.
Public property ListView Gets the ListView control that contains the item.
Public property Name Gets or sets the name associated with this ListViewItem.
Public property Position Gets or sets the position of the upper-left corner of the ListViewItem.
Public property Selected Gets or sets a value indicating whether the item is selected.
Public property 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.
Public property SubItems Gets a collection containing all subitems of the item.
Public property Tag Gets or sets an object that contains data to associate with the item.
Public property Text Gets or sets the text of the item.
Public property ToolTipText Gets or sets the text shown when the mouse pointer rests on the ListViewItem.
Public property UseItemStyleForSubItems Gets or sets a value indicating whether the Font, ForeColor, and BackColor properties for the item are used for all its subitems.
Top
  Name Description
Public method BeginEdit Places the item text into edit mode.
Public method Clone Creates an identical copy of the item.
Protected method Deserialize Deserializes the item.
Public method EnsureVisible Ensures that the item is visible within the control, scrolling the contents of the control, if necessary.
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method FindNearestItem Finds the next item from the ListViewItem, searching in the specified direction.
Public method GetBounds Retrieves the specified portion of the bounding rectangle for the item.
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetSubItemAt Returns the subitem of the ListViewItem at the specified coordinates.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Remove Removes the item from its associated ListView control.
Protected method Serialize Serializes the item.
Public method ToString Returns a string that represents the current object. (Overrides Object.ToString().)
Top

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.

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


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
LVI inladen zonder klasse, SmallIcons, LargeIcons, ImageList, Planten
//2 image listen aanmaken (small icons, large icons)
//linken aan properties ListView

Public Class frmTest

    Private Sub frmTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        plantenGroepenInladen()
        plantenInladenLST()
        plantenInladenLVI()
    End Sub

    Private Sub plantenGroepenInladen()
        For Each item As PlantType In PlantType.GetPlantTypes
            Dim oGroep As ListViewGroup = New ListViewGroup(item.Id, item.Naam)
            lsvPlanten.Groups.Add(oGroep)
        Next
    End Sub

    Private Sub plantenInladenLST()
        Dim planten As New List(Of String)
        For Each p As Plant In Plant.GetPlanten
            planten.Add(p.Naam)
        Next
        lstPlanten.Items.AddRange(planten.ToArray)
    End Sub

    Private Sub plantenInladenLVI()
        For Each plant As Plant In plant.GetPlanten
            Dim oItem = New ListViewItem(plant.Naam, getKleur(plant))
            oItem.Group = lsvPlanten.Groups.Item(plant.PlantTypeId)
            oItem.SubItems.Add(plant.Voorraad)
            oItem.SubItems.Add(plant.MinVoorraad)
            lsvPlanten.Items.Add(oItem)
        Next
    End Sub

    Private Function getKleur(ByVal plant As Plant) As Integer
        Dim cijfer As Integer = 0
        If plant.MinVoorraad > plant.Voorraad Then
            cijfer = 1
        Else
            cijfer = 0
        End If
        Return cijfer
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        lsvPlanten.View = View.Details
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        lsvPlanten.View = View.List
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        lsvPlanten.View = View.LargeIcon
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        lsvPlanten.View = View.SmallIcon
    End Sub
End Class
Public Class Programma (ToString, CompareTo, ...)

Public Class Programma
    Implements IComparable(Of Programma) 'voor de compare to

    Private msNaam As String
    Private mdTijdStip As Date
    Private msZender As String

    Public Sub New(ByVal sNaam As String, ByVal dTijdStip As Date, ByVal sZender As String)
        Me.msNaam = sNaam
        Me.mdTijdStip = dTijdStip
        Me.msZender = sZender
    End Sub

    Public Property Naam() As String
        Get
            Return msNaam
        End Get
        Set(ByVal value As String)
            msNaam = value
        End Set
    End Property

    Public Property TijdStip() As Date
        Get
            Return mdTijdStip
        End Get
        Set(ByVal value As Date)
            mdTijdStip = value
        End Set
    End Property

    Public Property Zender() As String
        Get
            Return msZender
        End Get
        Set(ByVal value As String)
            msZender = value
        End Set
    End Property

    Public Overrides Function Equals(ByVal obj As Object) As Boolean
        'Er moet een ander object zijn
        If obj Is Nothing Then Return False
        'Het ander object moet van zelfde type zijn
        If Not TypeOf (obj) Is Programma Then Return False
        'Gelijk als de tijdstippen gelijk zijn
        Dim oAnderProgramma As Programma
        oAnderProgramma = CType(obj, Programma)
        Return Me.TijdStip.Equals(oAnderProgramma.TijdStip)
    End Function

    Public Overrides Function GetHashCode() As Integer
        Return Me.TijdStip.GetHashCode()
    End Function

    Public Function CompareTo(ByVal other As Programma) As Integer Implements System.IComparable(Of Programma).CompareTo
        If other Is Nothing Then Return 0
        If Me.Zender = other.Zender Then
            Return Me.Zender.CompareTo(other.Zender)
        Else
            Return Me.TijdStip.CompareTo(other.TijdStip)
        End If

    End Function

    Public Overrides Function ToString() As String
        Return String.Format("{0} | {1} | {2}", Naam, Zender, TijdStip.Date & " " & TijdStip.Hour & ":" & TijdStip.Minute)
    End Function

End Class
Collections (frmCollecties, DateTimePicker)
Public Class frmCollecties

    'ditionory definiëren
    Private programmas As Dictionary(Of Date, ProgrammaLijst)

    Private Sub frmCollecties_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'dictionary object aanmaken en referentie in variabele bewaren
        programmas = New Dictionary(Of Date, ProgrammaLijst)()

        dateTimePickerInstellen()

    End Sub

    Private Sub dateTimePickerInstellen()

        'formaten van de "DateTimePickers" instellen
        dtpDateTimePicker1.CustomFormat = "dd/MM/yy - HH:mm"
        dtpDateTimePicker1.Format = DateTimePickerFormat.Custom

        dtpDateTimePicker.CustomFormat = "dd/MM/yy"
        dtpDateTimePicker.Format = DateTimePickerFormat.Custom

    End Sub

    Private Sub btnToeveogen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToeveogen.Click

        'zijn de tekstvakken ingevuld?
        If txtNaam.Text <> "" And txtZender.Text <> "" Then
            programmaToevoegen()
        Else
            MessageBox.Show("je hebt de form niet volledig ingevuld", "waarschuwing", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End If

    End Sub

    Private Sub programmaToevoegen()

        'programma toevoegen die je hebt opgegeven
        Dim oProgramma As ProgrammaLijst
        oProgramma = New ProgrammaLijst(txtNaam.Text, dtpDateTimePicker1.Value.Date & " " & dtpDateTimePicker1.Value.Hour & ":" & dtpDateTimePicker1.Value.Minute, txtZender.Text)

        'voordat we het programma toevoegen testen als het tijdstip noet niet bezet is
        Dim test As Boolean
        test = controledubbels(oProgramma)

        If test = True Then
            programmas.Add(oProgramma.TijdStip, oProgramma)
        Else
            MessageBox.Show("dit tijdstip is al bezet", "waarschuwing", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End If


        Console.WriteLine("aantal programma's in dictionary: " & programmas.Count)

        opkuis()
        updateLijstButton(oProgramma)

    End Sub

    Private Sub opkuis()

        txtNaam.Clear()
        txtZender.Clear()

    End Sub
    Private Sub updateLijstButton(ByVal oProgramma As ProgrammaLijst)

        'alle waarden overlopen in de directory (en uitprinten in de console) [controle]
        Console.WriteLine("GEGEVENS IN DIRECTORY")
        For Each oPaar As KeyValuePair(Of Date, ProgrammaLijst) In programmas
            Console.WriteLine(oPaar.Key & " - " & oPaar.Value.ToString)
        Next

        'programma toevoegen aan listbox als het tijstip (datum) p klop in de "dtpDateTimPicker"
        Dim oProgramma1 As ProgrammaLijst
        oProgramma1 = programmas.Item(oProgramma.TijdStip)

        'voordat we het programma toevoegen testen als het tijdstip noet niet bezet is
        Dim test As Boolean
        test = controledubbels(oProgramma1)

        If test = True Then
            If oProgramma1.TijdStip.Date = dtpDateTimePicker.Value.Date Then
                lbProgrammas.Items.Add(oProgramma1)
            End If
        End If



        'sorteren lijst programma's in listbox
        sorteren()


    End Sub

    Private Sub dtpDateTimePicker_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtpDateTimePicker.ValueChanged
        updateLijst()
    End Sub

    Private Sub updateLijst()
        'listbox uitkuisen
        lbProgrammas.Items.Clear()

        'alle waarden overlopen in de directory (en uitprinten in de console) [controle]
        Console.WriteLine("GEGEVENS IN DIRECTORY")
        For Each oPaar As KeyValuePair(Of Date, ProgrammaLijst) In programmas
            Console.WriteLine(oPaar.Key & " - " & oPaar.Value.ToString)

            'als de "dtpDateTimePicker" op de juiste dag staat de gegevens toevoegen in de listbox
            If oPaar.Key.Date = dtpDateTimePicker.Value.Date Then
                lbProgrammas.Items.Add(oPaar.Value)
            End If

        Next

        'sorteren lijst programma's in listbox
        sorteren()

    End Sub

    Private Sub sorteren()
        Dim programmasInLijst As List(Of Programma)
        programmasInLijst = New List(Of Programma)
        For Each item In lbProgrammas.Items
            programmasInLijst.Add(item)
        Next

        programmasInLijst.Sort()

        lbProgrammas.Items.Clear()

        For Each item In programmasInLijst
            lbProgrammas.Items.Add(item)
        Next
    End Sub

    Private Function controledubbels(ByVal oProgramma As ProgrammaLijst) As Boolean
        Dim programmasInLijst As List(Of Programma)
        programmasInLijst = New List(Of Programma)
        For Each item In lbProgrammas.Items
            programmasInLijst.Add(item)
        Next

        Dim test As Boolean
        If programmasInLijst.Count > 0 Then
            For Each item In programmasInLijst
                If oProgramma.TijdStip.Equals(item.TijdStip) Then
                    test = False
                Else
                    test = True
                End If
            Next
        Else
            Return True
        End If

        Return test

    End Function
End Class
Index Shennanigans
Watch out for the indices.
ListView Items are zero-based.
SubItems are 1-based.