2009-08-25 60 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