Search code examples
c#winformslistviewselectedindex

Set selected index in a listview


I have a listview on a Win Forms where I need to programmatically set the selected index. Apparently, ListView does not have a SelectedIndex property that can be set. Is there another way to do this?


Solution

  • Apparently, ListView does not have a SelectedIndex property that can be set.

    Indeed and it is logical as you can have multiple Items selected.

    Hence it does have the SelectedItems and also the SelectedIndices property; both are read-only.

    To select an Item simply set its Selected property to true:

    listView1.Items[someItemIndex].Selected = true; 
    

    If the ListView' s MultiSelect property is false, this will deselect all other Items. If it is true the Item is added to the set of selected Items..

    To de-select all Items in one go, use listView1.SelectedIndices.Clear(); or listView1.SelectedItems.Clear();..