如何将项目从一个标签页中的一个列表框复制到另一个标签页中的另一个列表框?

时间:2014-08-11 14:06:35

标签: c# tabs listbox listboxitem

问题是我无法将项目从一个列表框复制到另一个列表框。除此之外,列表框位于选项卡控件的不同选项卡页面中。

我尝试了一些代码,例如:

private void MoveListBoxItems(Flowerlistbox, Total1istBox)

{        
    ListBox.SelectedObjectCollection sourceItems = source.SelectedItems;

foreach (var item in sourceItems)

    {

        destination.Items.Add(item);
    }
    while (source.SelectedItems.Count > 0)

{

        source.Items.Remove(source.SelectedItems[0]);
    }
}



private void Donebutton_Click(object sender, EventArgs e)       
{

try

{

 //moving all items from listbox1 to listbox2

Total1listBox.Items.AddRange(FlowerlistBox.Items);

  FlowerlistBox.Items.Clear();

 }

 catch (Exception ex)

 {

    MessageBox.Show(ex.Message);

   }

     Total1listBox.SelectedIndex = 0;

 }



foreach(var item in FlowerlistBox.SelectedItems)

{    
Total1listBox.Items.Add(item);

}




private void Donebutton_Click(object sender, EventArgs e)

{

              foreach(var item in FlowerlistBox.SelectedItems)

           {

             Total1listBox.Items.Add(item);

           }

然而,它们似乎都没有起作用。

1 个答案:

答案 0 :(得分:1)

这将首先从FlowerlistBox收集所选项目,然后将它们添加到Total1istBox,然后从FlowerlistBox中删除它们,最后清除列表。

请注意,您的代码对FlowerlistBox有不同的拼写,可能应该拼写TotalListBox。

List<object> theItems = new List<object>();
foreach (object item in FlowerlistBox.SelectedItems) theItems.Add(item);
foreach (object item in theItems) Total1istBox.Items.Add(item);
foreach (object item in theItems) FlowerlistBox.Items.Remove(item);
theItems.Clear();

首次收集项目的原因是,当我们最终要删除它们时,我们无法修改我们需要迭代的集合。