2009-08-25 61 views
0

我有項目的ListView 一個ListView控件與項目另外一個是空 我需要從第一ListView中選定的項目在同一時間 複製到其他的ListView我不得不刪除在第一ListView中選定項目C#選擇的ListView

+0

您使用的是Windows Forms還是ASP.net? – Rob 2009-08-25 09:03:42

回答

0

該代碼會從第一個ListView1的複製到listview2所有選定的項目,並從ListView1的

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

從迭代中刪除枚舉項並不是一個好主意: http://generally.wordpress.com/2007/10/24/removing-items-in-a-list-while-迭代通過它/ http://stackoverflow.com/questions/1114735/when-items-change-while-being-enumerated-does-it-affects-the-enumeration – Rob 2009-08-25 09:11:53

+0

壞主意刪除項目時,迭代他們 – RvdK 2009-08-25 09:28:03

+0

抱歉,我不知道在迭代時刪除項目是個壞主意,感謝新信息。 – 2009-08-25 10:54:22

3

刪除它,而不是從集合中移除,你枚舉(按瓦埃勒的答案)項目,這是一個「壞主意」,用於EMPORARY集合,在這種情況下列表將它們保存在刪除之前:

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); 
    } 

哪裏ListView1的是與所選項目的列表和listView2是將他們的名單。

+0

+1,獲取新信息。 – 2009-08-25 10:54:57