c# - 在 C# winform 中将选定的项目从一个列表框移动到另一个列表框

标签 c# winforms listbox

我正在尝试将列表框 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);
}

最佳答案

您的代码工作正常。我测试了它。 您的问题是“我尝试将列表框 1 中的选定 项移动到列表框 2。”

我认为你的 button2 有问题。删除 button2 和下面的代码

private void button2_Click_1(object sender, EventArgs e)
{
    MoveListBoxItems(listbox , lstActivity);
}

然后创建其他按钮并创建点击事件。

完整来源:

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);
}

这段代码是有效的。如果你想选择多个项目更改属性 SelectionMode = MultiSimple;

关于c# - 在 C# winform 中将选定的项目从一个列表框移动到另一个列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344387/

相关文章:

c# - 如何在没有显式转换的情况下始终获得正确的类型

wpf - WPF 中的 ListBoxItem - 选中时缩放动画

c# - 将参数从一种方法传递到 button.click 的另一种方法

winforms - .Net 绘图裁剪错误

jquery - HTML 列表框换行文本

c# - 如何在 WPF 中实现图像轮播,其中所选项目始终是第一个?

c# - 类型 'System.Web.HttpInputStream' 未标记为可序列化

c# - 使用 Windows API 从 C# Windows 窗体应用程序读取非 C# 应用程序文本框

c# - 封装一个任务来记录异步函数的持续时间

c# - 当我的应用程序不会迁移时,我应该关心文化吗?