'Selected items changed to deselected' WinForm 列表视图中的事件



是否Winform ListView控件有这样一个事件,当'所有选定的项目更改为取消选择'时触发?因此,当我在列表中有一些选中的项目并且所有更改都被取消选中时(因此,现在我没有任何选中的项目),我应该捕获一个事件。恐怕它没有内置的事件。或者…?

在ItemSelectionChanged中,检查是否有任何项在ListView中被选中:

listView1.ItemSelectionChanged += listView1_ItemSelectionChanged;
void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
    if (listView1.SelectedItems.Count == 0)
        //Do something
}

您可以使用SelectedIndexChanged并在事件中检查是否所有项都被取消选中,例如…

    bool allDeselected = true;
    foreach (ListViewItem item in myListView.Items)
    {
        if (item.Selected)
        {
            allDeselected = false;
            break
        }
    }
   this.listView1.ItemSelectionChanged += this.HandleOnListViewItemSelectionChanged;
    private void HandleOnListViewItemSelectionChanged(Object sender, ListViewItemSelectionChangedEventArgs e)
    {
        if (e.IsSelected)
        {
            //do your selected work
        }
        else
        {
            //do your unselected work
            this.listView1.ItemSelectionChanged-= new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.listView1_ItemSelectionChanged);
        }
    }

最新更新