Supprimer des éléments sélectionnés dans une ListBox
MaitreNicodeme
Messages postés3Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention27 novembre 2003
-
27 nov. 2003 à 12:04
MaitreNicodeme
Messages postés3Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention27 novembre 2003
-
27 nov. 2003 à 15:28
Bonjour à tous :) !
J'utilise 2 ListBox.
La première, que l'on nommera List1, contient des paramètres sélectionnables par l'utilisateur.
La deuxième, que l'on nommera List2, contient les paramètres sélectionnés par l'utilisateur.
Si l'utilisateur sélectionne plusieurs paramètres dans List1 et qu'il clique sur le bouton pour valider, ces éléments de List1 sont ajoutés dans List2.
Dim objItem as Object
For Each objItem In lstCatRemuOut.SelectedItems
lstCatRemuIn.Items.Add(objItem.ToString())
lstCatRemuOut.Items.Remove(objItem)
Next
Mon problème survient lorsque je veux les supprimer de List1. En effet, j'ai le message d'erreur suivant (tout à fait logique si on y pense) :
Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans system.windows.forms.dll
Informations supplémentaires : La liste à laquelle cet énumérateur est lié a été modifiée. Un énumérateur ne peut être utilisé que si la liste ne change pas.
Ma question est donc:
Comment supprimer plusieurs éléments sélectionnés d'une ListBox ?
Merci d'avance pour vos réponses et vos conseils,
Nicodème.
A voir également:
Supprimer des éléments sélectionnés dans une ListBox
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 27 nov. 2003 à 14:09
voila 2 façons de procéder :
Evidement il faut mettre la propriété multiselect de listbox1
Private Sub Command1_Click()
'Exemple en stockant les index a suppr
'dans un tableau dynamique
Dim I As Integer
Dim X As Integer 'variable pour la redim du tableau
Dim Tableau() 'declaration tableau dynamique
For I = 0 To List1.ListCount - 1 'parcourt de la list1
If List1.Selected(I) = True Then 'si selectionné alors
ReDim Preserve Tableau(X) 'redim du tableau
Tableau(X) = I 'stocke l'index selectionner dans le tableau
X = X + 1 'ajoute 1 a la variable en vu de la prochaine entrée
End If
Next I
'Supression des index
For I = 0 To UBound(Tableau)
List1.RemoveItem Tableau(I) - I
Next I
End Sub
Private Sub Command2_Click()
'Exemple en stockant les index a conserver dans un tableau dynamique
Dim I As Integer
Dim X As Integer 'variable pour la redim du tableau
Dim Tableau() 'declaration tableau dynamique
For I = 0 To List1.ListCount - 1
If List1.Selected(I) = False Then
ReDim Preserve Tableau(X) 'redim du tableau
Tableau(X) = List1.List(I) 'stocke Le texte selectionner dans le tableau
X = X + 1 'ajoute 1 a la variable en vu de la prochaine entrée
End If
Next I
'reaffichage des élément de list1 non selectionné
List1.Clear 'efface list1
For I = 0 To UBound(Tableau)
List1.AddItem Tableau(I)
Next I
End Sub