Je suppose que vous devez déplacer les éléments séparément:
List<object> itemsToRemove = new List<object>();
foreach (var item in listbox2.SelectedItems)
{
listbox1.Items.Add(item);
itemsToRemove.Add(item);
}
foreach (var item in itemsToRemove)
{
listbox2.Items.Remove(item);
}
Ceci va déplacer tous les éléments sélectionnés de listbox2
à listbox1
. La liste itemsToRemove
est utilisée comme stockage temporaire car vous ne pouvez pas modifier une collection pendant qu'elle itère sur elle; pendant l'itération, nous ajoutons simplement des références aux éléments à supprimer dans une liste temporaire, puis nous parcourons cette liste et supprimons les éléments.
Afin de gérer le cas où aucun élément sont sélectionnés, je mis en place un gestionnaire d'événements pour l'événement SelectedIndexChanged
, et définissez la propriété Enabled
du bouton:
theButton.Enabled = (listbox2.SelectedItems.Count > 0);
Bonne idée, j'ai oublié de les retirer de la liste initiale. – hometoast