在C#winform中将所选项目从一个列表框移动到另一个列表框

use*_*370 9 c# listbox winforms

我正在尝试将列表框1中的选定项目移动到列表框2,反之亦然.我有两个按钮,>><<.当我在listbox1中选择项目然后单击>>项目应该从listbox1移动到listbox2.

private void MoveListBoxItems(ListBox source, ListBox destination)
{
    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 button2_Click_1(object sender, EventArgs e)
{
    MoveListBoxItems(listbox , lstActivity);
}
Run Code Online (Sandbox Code Playgroud)

Hab*_*are 10

你的代码工作正常.我测试了它.你的问题是"我尝试将列表框1中的选定项目移动到列表框2."

我认为你的button2有problem.delete button2和下面的代码

private void button2_Click_1(object sender, EventArgs e)
{
    MoveListBoxItems(listbox , lstActivity);
}
Run Code Online (Sandbox Code Playgroud)

然后创建其他按钮并创建单击事件.

完整来源:

private void MoveListBoxItems(ListBox source, ListBox destination)
{
    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 first2second_Click(object sender, EventArgs e)
{
    MoveListBoxItems(FirstListbox, LastListbox);
}

private void second2first_Click(object sender, EventArgs e)
{
    MoveListBoxItems(LastListbox, FirstListbox);
}
Run Code Online (Sandbox Code Playgroud)

这段代码很有用.如果要选择多个项目更改属性SelectionMode = MultiSimple;