【发布时间】:2016-06-10 01:58:08
【问题描述】:
我有两个 ListView,想将项目从一个移到另一个。
我可以复制到新列表,但是从第一个列表中删除不起作用。
private void button2_Click(object sender, EventArgs e)
{
foreach (ListViewItem i in listView1.Items)
{
if (i.Checked == true)
{
ListViewItem itemClone = i.Clone() as ListViewItem;
listView2.Items.Add(itemClone);
}
}
foreach (ListViewItem itemSelected in listView1.SelectedItems)
{
listView1.Items.Remove(itemSelected);
}
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
listView2.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
}
目前有两个循环有点不雅,但我读到的一篇文章说我无法在同一个 foreach 循环中添加和删除项目。
【问题讨论】:
-
您的表单加载代码是什么?如果您在那里绑定数据并且没有
if(!Page.IsPostBack){},那么无论您做什么都会在回发时被覆盖。 -
应该提到它是一个Winforms项目!
-
“不起作用”是什么意思?不编译,运行正常但什么都不做,抛出异常?
-
项目保留在 ListView1 中
-
要删除选中的项目还是选中的项目?