如何在.NET 2.0 ListView 中全选/全选?
题
在不使用的情况下选择列表视图中的所有项目或不选择任何项目的好方法是什么:
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 控件后面的控件发送 PInvoking 消息(我不想成为一个糟糕的开发人员并依赖未记录的行为 - 当他们将其更改为完全托管的 ListView 类时)
撞
伪受虐狂 有 选择无 案件:
ListView1.SelectedItems.Clear();
现在只需要 全选 代码
解决方案
哇这个老了……:D
全选
listView1.BeginUpdate();
foreach (ListViewItem i in listView1.Items)
{
i.Selected = true;
}
listView1.EndUpdate();
选择逆
listView1.BeginUpdate();
foreach (ListViewItem i in listView1.Items)
{
i.Selected = !i.Selected;
}
listView1.EndUpdate();
BeginUpdate
和 EndUpdate
用于在更新其内容时禁用/启用控件重绘...我认为它会更快地选择所有内容,因为它只会刷新一次,而不是 listView.Items.Count
次。
其他提示
任何一个
ListView1.SelectedItems.Clear();
或者
ListView1.SelectedIndices.Clear();
无论如何,应该可以做到“不选择”。
不隶属于 StackOverflow