Effacer des Item dans une listview

amonn Messages postés 2 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 7 février 2003 - 6 févr. 2003 à 16:49
cs_patrick Messages postés 31 Date d'inscription vendredi 19 mai 2000 Statut Membre Dernière intervention 21 juillet 2015 - 21 nov. 2008 à 14:49
Amonn

SVP Help !
je veux effacer des Items dans une listview ! le prob c ke quand je fais :

For i = 1 To ListView1.ListItems.Count
If ListView1.ListItems(i).Checked = True Then
ListView1.ListItems.Remove i
End If
Next i

ça me di :index hors limites !

sinon cette manip me permettra elle de supprimer toutes les colonnes de la list item?

merci d'av a celui qui me sauvera et bonne prog a tous !

6 réponses

cs_raff Messages postés 182 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 5 janvier 2004 3
6 févr. 2003 à 17:11
le probleme c'est que a mesure que la boucle est exécutée, la propriété count du listview change (elle diminue) ce qui donne ton erreur.
0
VicoLaChips2 Messages postés 436 Date d'inscription dimanche 20 janvier 2002 Statut Membre Dernière intervention 2 février 2010 2
6 févr. 2003 à 17:31
Bonjour -;)
Le problème :

For i = 1 To ListView1.ListItems.Count
La méthode .count renvoie le nb d'éléments sur une base de 1...
Donc il faut coder :

For i = 1 To ListView1.ListItems.Count -1
'code
next

comme ça i ne sera jamais supérieur au nombre d'éléments...

@+, VIC
---------------------
Réponse au message :
-------------------------------

> Amonn
>
> SVP Help !
> je veux effacer des Items dans une listview ! le prob c ke quand je fais :
>
> For i = 1 To ListView1.ListItems.Count
> If ListView1.ListItems(i).Checked = True Then
> ListView1.ListItems.Remove i
> End If
> Next i
>
> ça me di :index hors limites !
>
> sinon cette manip me permettra elle de supprimer toutes les colonnes de la list item?
>
> merci d'av a celui qui me sauvera et bonne prog a tous !
0
amonn Messages postés 2 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 7 février 2003
7 févr. 2003 à 10:42
Amonn

Merci bcp pour votre coup de main...là j'ai mieux compris! et surtout ça marche mieux mon appli !
bonne journée :big)
0
cs_colin_b Messages postés 1 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 28 février 2004
28 févr. 2004 à 02:56
Moi j'ai fait comme ça et ça marche très bien !
Ton problème c'est que tu effaces dans le la boucle for

'info : mon listview s'appelle LV_taches

Private Sub supprimer_Click()
tmp = LV_taches.ListItems.Count 'efface par défaut le dernier
For i = 1 To LV_taches.ListItems.Count If LV_taches.ListItems(i).Selected True Then tmp i
Next
If LV_taches.ListItems.Count > 0 Then LV_taches.ListItems.Remove tmp
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_patrick Messages postés 31 Date d'inscription vendredi 19 mai 2000 Statut Membre Dernière intervention 21 juillet 2015
21 nov. 2008 à 14:38
Un simple

           While Me.ListView.ListItems.Count > 0
              Me.ListView.ListItems.Remove (1)
          Wend

Suffit... mais c'est lent !

patrick Moire
http:\\jeux.cartes.free.fr
0
cs_patrick Messages postés 31 Date d'inscription vendredi 19 mai 2000 Statut Membre Dernière intervention 21 juillet 2015
21 nov. 2008 à 14:49
Plus rapidement

listview.ListItems.Clear

patrick Moire
http:\\jeux.cartes.free.fr
0
Rejoignez-nous