是否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);
}
}