DELETAR GRID

GUIGOR 21/01/2013 14:30:07
#417804
BOA TARDE ESTOU EXCLUINDO UM REGISTRO DO GRID DESTA FORMA

For i = 1 To GridPVAlterados.ListItems.Count

If GridPVAlterados.ListItems(i).Checked = True Then

If GridPVAlterados.ListItems.Count = 0 Then: Exit Sub
GridPVAlterados.ListItems.Remove (GridPVAlterados.ListItems(i).Index)

End If

Next i

OU SEJA SE O ITEM DO GRID ESTIVER COM O CHECK MARCADO EU TENHO QUE DELETAR TUDO
QUANDO ELE TERMINA DE EXCLUIR DA O SEGUINTE ERRO


INDEX OUT OF BOUNDS
MARCELO.TREZE 21/01/2013 16:23:03
#417818
Resposta escolhida
tenta assim

For i =[txt-color=#e80000] 0[/txt-color] To GridPVAlterados.ListItems.Count [txt-color=#e80000]- 1[/txt-color]
GUIGOR 21/01/2013 16:46:13
#417821
veja no anexo o erro que continua dando
na linha

If GridPVAlterados.ListItems(i).Checked = True Then e ai tanto faz


For i = 0 To GridPVAlterados.ListItems.Count - 1
quanto
For i = 1 To GridPVAlterados.ListItems.Count
KERPLUNK 21/01/2013 18:02:26
#417825
For i = 1 To GridPVAlterados.ListItems.Count - 1
GUIGOR 21/01/2013 18:53:21
#417837
Continua dando erro ao verificar se existe dados marcado do grid na linha
If GridPVAlterados.ListItems(i).Checked = True Then

O pior que nao sei como pode esta dando errado pois só verifico se esta marcado ou nao
MARCELO.TREZE 21/01/2013 21:09:02
#417843
consegui entender o problema,e é o seguinte quando o laco inicia ele faz uma contagem de linhas no grid, porém quando vc exclui a primeira linha ele continua até a contagem inicial, ou seja se o grid tinha quatro linhas e você exclui a primeira ele vai ler até o quatro que ja não existe mais o que causa o erro, veja uma solução que encontrei

NovoLaco:
For i = 1 To GridPVAlterados.ListItems.Count

If GridPVAlterados.ListItems(i).Checked = True Then

If GridPVAlterados.ListItems.Count = 0 Then Exit Sub
GridPVAlterados.ListItems.Remove (i)
Goto NovoLaco
End If

Next i
Tópico encerrado , respostas não são mais permitidas