Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Robinho

Remover Items de ListView

Recommended Posts

oi galera !!pessoal eh assim, eu estou tentando fazer q com ao adicionar um item de uma listview para outra, entao seja eliminado da primeira listview esse item...para isso tenho o seguinte codigo:

Dim i As IntegerDim j As Integer  For i = 1 To ListView2.ListItems.Count     For j = 1 To ListView1.ListItems.Count           If ListView1.ListItems(j).Text = ListView2.ListItems(i).Text Then              ListView1.ListItems(j).ListSubItems.Remove 1              ListView1.ListItems(j).Text = ""           End If     Next j  Next i
ta dando erro na linha:

ListView1.ListItems(j).ListSubItems.Remove 1

e diz index out of bounds,pq ta dando erro ?como resolver este erro ? http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para remover o item no caso você deveria fazer assim:

ListView1.ListItems.remove ListView1.ListItems(j).index

E não assim:

ListView1.ListItems(j).ListSubItems.Remove 1
Pois isso é para remover os SubiTens

Compartilhar este post


Link para o post
Compartilhar em outros sites

por q razao da index out of bounds ??

 

Dim i As IntegerDim j As Integer For i = 1 To ListView2.ListItems.Count    For j = 1 To ListView1.ListItems.Count          If ListView1.ListItems(j).Text = ListView2.ListItems(i).Text Then             ListView1.ListItems.Remove ListView1.ListItems(j).Index             ListView1.ListItems(j).Text = ""          End If    Next j Next i

da sempre esse erro, onde tem a variavel j

 

pq ??

 

brigada

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qdo você usa o método remove, você vai estar tirando o item J então ñ tem como você alterar o texto dele, então tira essa parte:

ListView1.ListItems(j).Text = ""

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo assim ta complicado...

If ListView2.ListItems(i).Text = ListView1.ListItems(j).Text Then                ListView1.ListItems.Remove ListView1.ListItems(j).Index End If

ta dando na mesma Index Out Of Bounds no inicio do If http://forum.imasters.com.br/public/style_emoticons/default/blush.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah saquei, qdo você exclui o item J ele ñ existe mais mas o loop continua então ele vai passar de novo pelo if e vai tentar pegar o texto do item J (que ñ existe mais) daí da erro, tenta fazer assim:

Dim i As IntegerDim j As Integerdim retirado as booleanretirado = false 'ñ lembro se o false já é padrão mas acho que éFor i = 1 To ListView2.ListItems.Count   For j = 1 To ListView1.ListItems.Count         If ListView1.ListItems(j).Text = ListView2.ListItems(i).Text Then            ListView1.ListItems.Remove ListView1.ListItems(j).Index            retirado = true            exit for         End If   Next j   if retirado = true exit forNext i
E dependendo de como você está passando o item de uma listview para a outra poderia ter um jeito melhor de exclui-lo, pois desse modo pode levar um tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.