Pergunta

Eu tenho um ListView que às vezes eu preciso para colocar em torno de 10.000 itens em. ListViews realmente não lidar com isso muito bem, e eles trancar por um par de segundos enquanto elas classificar os itens e desenhá-los. Se você adicionar os itens individualmente, é ainda pior, trancando-se por quase um minuto.

Para contornar este problema, eu pensei que eu ia tentar preencher o ListView antes eu preciso exibi-lo, mas, infelizmente, tem outras idéias. Ele só começa a desenhar quando ligo o painel que contém o ListView visível, tornando o programa pendurar por um par de segundos.

Todas as ideias sobre como posso eliminar esse atraso? Ou há um outro componente que é relativamente fácil de usar que é melhor para mostrar grandes quantidades de dados?

Foi útil?

Solução

Você precisa usar o VirtualMode .

Outras dicas

Bem. Se você quiser apenas para carregar o conteúdo no fundo você poderia tentar um fio para preencher o ListView, o que permitirá que a carga de formulário.

Eu não acho que você vai ter a pausa, se você colocar um Application.DoEvents (); quando você estiver carregando os itens (que permite que o formulário para redesenhar e receber eventos).

for (int ix=0; ix < 10000; ix ++)
{
 listView1.Items.Add(ix.ToString());
 Application.DoEvents();
}

Eu acho que minhas sugestões são bons, se você não está ciente de VirtualMode

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