Pergunta

O que é uma boa maneira de selecionar tudo ou selecione nenhum item numa lista sem usar:

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

ou

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

Eu sei que os subjacentes Win32 listview suporta controle comum LVM_SETITEMSTATE mensagem que você pode usar para definir o estado selecionado, e passando-1 como o índice que será aplicado a todos os itens. Eu prefiro não ser PInvoking mensagens para o controle que acontece de estar por trás do controle .NET Listview (Eu não quero ser uma má desenvolvedor e dependem do comportamento não documentada - para quando eles alterá-lo para uma classe ListView totalmente gerenciado)

Bump

Pseudo Masochist tem SelectNone caso:

ListView1.SelectedItems.Clear(); 

Agora, só precisa do SelectAll Código

Foi útil?

Solução

Wow este é velho ...: D

Selecionar Tudo

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

Selecionar inverso

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

BeginUpdate e EndUpdate são usados ??para ativar / desativar o redesenho controle, enquanto o seu conteúdo está sendo atualizado ... Eu acho que seria selecionar tudo mais rápido, uma vez que atualizar apenas uma vez, e não vezes listView.Items.Count.

Outras dicas

De qualquer

ListView1.SelectedItems.Clear();

ou

ListView1.SelectedIndices.Clear();

deve fazer o truque para selecionar nenhum, de qualquer maneira.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top