jcbiker Posted August 12, 2015 at 08:27 AM Report #586965 Posted August 12, 2015 at 08:27 AM Bom dia, necessito de ajuda no seguinte: Tenho uma base de dados em sql server instalada num pc e criei uma pequena rede onde varios pcs vão ligar a essa base. Problema: dessa base necessito carregar uma listview de uma determinada tabela que contem milhares de dados, Para o efeito utilizo uma textbox onde o utilizador vai escrevendo o que pretende e a listView vai carregando os resultados, mas este procedimento demora muito tempo. .LvClientes.clear() .LvClientes.View=view.details .Lvclientes.Columns.add("Id",0) .Lvclientes.Columns.add("Nome",150) Dim pesq=from c in context.clientes Where c.nome.contains(txtnome.text) Select c For each c in pesq dim LvItem as new ListViewItem LvItem.text=c.id .Lvclientes.items.add(LvItem) LvItem.SubItems.add(c.nome) next Alguem me pode ajudar para tornar a pesquisa mais rapida.
Solution jprsilva Posted August 27, 2015 at 08:26 PM Solution Report #587412 Posted August 27, 2015 at 08:26 PM (edited) Existem duas possibilidades. 1. Usar os métodos BeginUpdate e EndUpdate da listview 2. Usar o modo virtual da listview Quanto à primeira opção é muito simples: Antes da instrução Clear da listview colocar a instrução: LvClientes.BeginUpdate() Depois da instrução Next colocar a instrução LvClientes.EndUpdate. Esta solução citando o MSDN: "Maintains performance while items are added to the ListBox one at a time by preventing the control from drawing until the EndUpdate method is called." https://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.beginupdate(v=vs.110).aspx Quanto ao modo virtual é muito eficaz quando temos milhares de linhas para criar: https://msdn.microsoft.com/en-us/library/system.windows.forms.listview.virtualmode(v=vs.110).aspx Edited August 27, 2015 at 08:28 PM by jprsilva
jcbiker Posted September 21, 2015 at 03:34 PM Author Report #588153 Posted September 21, 2015 at 03:34 PM Obrigado pela ajuda. Resolveu
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now