How can I unselect item in ListView?

后端 未结 8 984
故里飘歌
故里飘歌 2021-01-08 01:19

I have a ListView with a couple of items in it. When the ListView looses focus, the last selected ListViewItem is still \"selected\" with a gray background.
I would like

相关标签:
8条回答
  • 2021-01-08 01:32

    I know this is late but in case someone else needed the solution I would like to add to the solution.

    You need to set the Focused property to false to avoid deselected items having focus.

    for (int i = 0; i < this.myListView.SelectedIndices.Count; i++)
    {
        this.myListView.Items[this.myListView.SelectedIndices[i]].Selected = false;
        this.myListView.Items[this.myListView.SelectedIndices[i]].Focused = false;
    }
    
    0 讨论(0)
  • 2021-01-08 01:34

    Another effective way to approach this would be:

    foreach (ListViewItem i in myListView.SelectedItems)
    {
        i.Selected = false;
    }
    
    0 讨论(0)
  • 2021-01-08 01:34

    If you are using EditItemTemplate, rather than ItemTemplate, you may have been trying to figure out why ListView1.SelectedIndex = -1; hasn't been working. It's because you need to use ListView1.EditIndex = -1;

    0 讨论(0)
  • 2021-01-08 01:38
    if (listView1.SelectedItems.Count > 0)
        for (int i = 0; i < listView1.SelectedItems.Count; i++)
        {
            listView1.SelectedItems[i].Selected = false;
        }
    
    0 讨论(0)
  • 2021-01-08 01:41

    Suppose you are accessing the ListView from a parent form/control.

    You can add this piece of code in the form's/control's constructor/load event:

    this.myListView.LostFocus += (s, e) => this.myListView.SelectedIndices.Clear();
    

    Ok, so in your case, you would replace that delegate with:

    if (this.myListView.SelectedIndices.Count > 0)
        for (int i = 0; i < this.myListView.SelectedIndices.Count; i++)
        {
            this.myListView.Items[this.myListView.SelectedIndices[i]].Selected = false;
        }
    

    You can give the code a nicer form, btw.

    0 讨论(0)
  • 2021-01-08 01:43
    myListView.SelectedItems.Clear();
    
    0 讨论(0)
提交回复
热议问题