如何在.NET 2.0 ListView中进行SelectAll / SelectNone?

时间:2020-03-05 18:59:52  来源:igfitidea点击:

什么是不使用以下方法在列表视图中选择全部或者不选择任何项目的好方法:

foreach (ListViewItem item in listView1.Items)
{
 item.Selected = true;
}

或者

foreach (ListViewItem item in listView1.Items)
{
 item.Selected = false;
}

我知道底层的Win32 listview公共控件支持LVM_SETITEMSTATE消息,我们可以使用它来设置选定的状态,并且通过将-1作为索引传递,它将应用于所有项目。我宁愿不向恰好位于.NET Listview控件后面的控件调用消息(我不想成为一个糟糕的开发人员,并且在他们将其更改为完全托管的ListView类时依赖于未记录的行为)

伪受虐狂具有SelectNone案例:

ListView1.SelectedItems.Clear();

现在只需要SelectAll代码

解决方案

回答

任何一个

ListView1.SelectedItems.Clear();

或者

ListView1.SelectedIndices.Clear();

无论如何应该选择不选择的技巧。