如何在.NET 2.0 ListView中选择全部/选择无?

时间:2008-09-17 20:10:38

标签: listview selectall

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

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

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

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

凹凸

Pseudo Masochist包含 SelectNone 案例:

ListView1.SelectedItems.Clear(); 

现在只需要 SelectAll 代码

2 个答案:

答案 0 :(得分:4)

无论

ListView1.SelectedItems.Clear();

ListView1.SelectedIndices.Clear();
无论如何,

应该选择无。

答案 1 :(得分:3)

哇,这太老了......:D

全部选择

 listView1.BeginUpdate(); 
 foreach (ListViewItem i in listView1.Items)
 {
     i.Selected = true;
 }
 listView1.EndUpdate();

SELECT INVERSE

 listView1.BeginUpdate(); 
 foreach (ListViewItem i in listView1.Items)
 {
     i.Selected = !i.Selected;
 }
 listView1.EndUpdate();

BeginUpdateEndUpdate用于在更新内容时禁用/启用控件重绘...我认为它会更快地选择,因为它只刷新一次,而不是{ {1}}次。