2009-08-25 11 views
0

j'ai ListView avec des articles un ListView avec des objets autre est vide j'ai besoin de copier premier élément sélectionné ListView à un autre ListView en même temps je dois supprimer l'élément sélectionné dans la première ListView dans C#ListView Sélection en C#

+0

Utilisez-vous Windows Forms ou ASP.net? – Rob

Répondre

0

ce code copie de la première ListView1 à listview2 tous les éléments sélectionnés et le supprimer de ListView1

foreach (ListViewItem itm in ListView1.SelectedItems) 
    { 
     ListView1.Items.Remove(itm); 
     listView2.Items.Add(itm); 
    } 
+0

Supprimer des éléments d'une énumération pendant que vous répétez l'opération n'est pas une bonne idée: http://generally.wordpress.com/2007/10/24/removing-items-in-a-list-while- iterating-through-it/ http://stackoverflow.com/questions/1114735/when-items-change-while-being-enumerated-does-it-affects-the-enumeration – Rob

+0

mauvaise idée de supprimer des éléments en itérant sur eux – RvdK

+0

désolé je ne sais pas c'est c'est une mauvaise idée de supprimer des éléments lors de l'itération, merci pour la nouvelle info. –

3

plutôt que de supprimer des éléments de la collection que vous êtes qui énumèrent (selon la réponse de Wael), ce qui est une "mauvaise idée", utiliser au collection TEMPORAIRE, en l'occurrence une liste pour les stocker avant de les enlever:

List<ListViewItem> itemsToMove = new List<ListViewItem>(); 
    foreach (ListViewItem item in listView1.SelectedItems) 
    { 
     itemsToMove.Add(item); 
    } 
    foreach (ListViewItem item in itemsToMove) 
    { 
     listView1.Items.Remove(item); 
     listView2.Items.Add(item); 
    } 

Où listView1 est la liste des éléments sélectionnés et listView2 est la liste pour les déplacer.

+0

+1, pour de nouvelles informations. –

Questions connexes