我想从一个列表视图移动到另一个项目。 将它们添加到第二个工作,但是移动条目没有得到根本去除。
private void MoveSelItems(ListBox from, ListBox to)
{
for (int i = 0; i < from.SelectedItems.Count; i++)
{
to.Items.Add(from.SelectedItems[i].ToString());
}
from.Items.Remove(to.SelectedItem);
}
我使用C#/的WinForms / -NET 3.5
试试这个代码,而不是在循环结束
foreach ( var item in new ArrayList(from.SelectedItems) ) {
from.Items.Remove(item);
}
private void MoveSelItems(ListBox from, ListBox to)
{
while (from.SelectedItems.Count > 0)
{
to.Items.Add(from.SelectedItem[0]);
from.Items.Remove(from.SelectedItem[0]);
}
}
private void MoveSelItems(ListBox from, ListBox to)
{
for (int i = 0; i < from.SelectedItems.Count; i++)
{
to.Items.Add(from.SelectedItems[i].ToString());
from.Items.Remove(from.SelectedItems[i]);
}
}
虽然
Items.RemoveAt(i)是可能更快,如果该事项。
您可能需要创建一个控股列表。
//declare
List<Object> items = new List<Object>();
for (int i = 0; i < from.SelectedItems.Count; i++)
{
items.Add(from.SelectedItems[i]);
}
for (int i = 0; i < items.Count; i++)
{
to.Items.Add(items[i].ToString());
from.Items.Remove(items[i]);
}
for (int i = 0; i < ListBox3.Items.Count; i++)
{
ListBox4.Items.Add(ListBox3.Items[i].Text);
ListBox3.Items.Remove(ListBox3.SelectedItem);
}