C# 将项目从一个列表框交换到另一个列表框

C# 将项目从一个列表框交换到另一个列表框,c#,listbox,C#,Listbox,我试图交换两个列表框控件中的项目,但只添加了单词“(Collection)”。为什么? 您正在向列表框添加一个元素,该元素是元素的集合,ListBox.ObjectCollection 对该对象调用ToString()方法,返回对象类型(Collection) 要交换项目,您可以使用一个临时存储来保存一个列表框的项目集合,清除其项目集合,添加第二个列表框的项目,清除第二个列表框并添加第一个列表框的项目,使用临时存储作为源: var itemsL1 = new ListBox.ObjectColl

我试图交换两个
列表框
控件中的项目,但只添加了单词“(Collection)”。为什么?


您正在向列表框添加一个元素,该元素是元素的集合,
ListBox.ObjectCollection

对该对象调用
ToString()
方法,返回对象类型(
Collection

要交换项目,您可以使用一个临时存储来保存一个列表框的项目集合,清除其
项目
集合,添加第二个列表框的项目,清除第二个列表框并添加第一个列表框的项目,使用临时存储作为源:

var itemsL1 = new ListBox.ObjectCollection(listBox1, listBox1.Items);
listBox1.Items.Clear();
listBox1.Items.AddRange(listBox2.Items);
listBox2.Items.Clear();
listBox2.Items.AddRange(itemsL1);
如果未使用
DataSource
属性填充列表框项集合,则此操作有效。

否则,交换数据源

不要添加代码图片,谢谢,因为您将整个集合作为单个项目添加,而不是单独添加集合中的每个项目。循环遍历items集合并一次添加一个,或者使用
AddRange
方法添加一个项目集合。