在不使用以下内容的情况下,选择全部或在列表视图中不选择任何项目的好方法是什么:
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 代码
答案 0 :(得分:4)
无论
ListView1.SelectedItems.Clear();
或
ListView1.SelectedIndices.Clear();
无论如何,应该选择无。
答案 1 :(得分:3)
全部选择
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();
BeginUpdate
和EndUpdate
用于在更新内容时禁用/启用控件重绘...我认为它会更快地选择,因为它只刷新一次,而不是{ {1}}次。