cs_saul
Messages postés12Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention26 décembre 2003
-
16 oct. 2003 à 21:16
cs_jroy
Messages postés5Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention31 mars 2004
-
3 mars 2004 à 10:39
saul
Bonjour
Je dispose en vb6 de deux list box et d'un bouton command que je veux programmer pour qu'il me permette de transferer certains noms de la listbox 1 vers la listbox2 et de les supprimer de la listbox1 :
avec le code suivant
Private Sub cmdInactif_Click()
Dim i As Integer
For i = 0 To lstActif.ListCount - 1
If lstActif.Selected(i) Then
lstInactif.AddItem (lstActif.List(i))
End If
Next i
For i = 0 To lstActif.ListCount - 1
If lstActif.Selected(i) Then
lstActif.RemoveItem (lstActif.List(i))
End If
Next i
End Sub
cela ne marche pas alors que si je supprime la deuxième boucle il fait correctement le transfert de lisbox1 vers listbox2 en utilisant la première boucle
si je supprime la première boucle et que je laisse que la deuxième cela ne marche pas quand même alors qu'il me semble que j'utilise les mêmes règles pour programmer la boucle pour la propriété additem et pour la propriété removeitem
où est mon erreur
a l'avance merci ;c'est un peu long mais pour comprendre
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 16 oct. 2003 à 21:42
A mon avis, cela vient du fait que tu supprime les entrées de liste à partir du début : lorsque tu supprime une entrée de liste, les index des autres entrées qui suivent sont modifié, se qui n'est pas top !
Pour pallier à ce problème : fait ta boucle dans l'autre sens :
For i = lstActif.ListCount - 1 To 0 Step -1
If lstActif.Selected(i) Then
lstActif.RemoveItem (lstActif.List(i))
End If
Next i
Logiquement, ce code devrait marcher... à tester.
DarK Sidious
[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
cs_jroy
Messages postés5Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention31 mars 2004 3 mars 2004 à 10:39
ma réponse vient peut être un peu tard mais je viens d'être confronté au même probleme que Saul et la solution est simple, c'est tout simplement un problème de syntaxe :
le paramètre de la méthode removeItem est un index est non pas la valeur de l'item en question.