将项目从一个列表框传输到另一个列表框

本文关键字:列表 传输 另一个 一个 项目 | 更新日期: 2023-09-27 18:36:51

到目前为止,我已经完成了将单个选择项目从一个 lb1 转移到 lb2,反之亦然。现在的问题是将整个数据列表从 lb1 传输到 lb2,反之亦然。如果有人可以帮忙。使用 for 循环会好得多。

我正在使用以下代码:

    private void add_Click(object sender, EventArgs e)
    {
        if (lb1.SelectedItem != null)
        {
            lb2.Items.Add(lb1.SelectedItem);
            lb1.Items.Remove(lb1.SelectedItem);
        }
        else
        {
            MessageBox.Show("No item selected");
        }
    }
    private void remove_Click(object sender, EventArgs e)
    {
        if (lb2.SelectedItem != null)
        {
            lb1.Items.Add(lb2.SelectedItem);
            lb2.Items.Remove(lb2.SelectedItem);
        }
        else
        {
            MessageBox.Show("No item selected");
        }
    }
    private void addall_Click(object sender, EventArgs e) //problem is here. adding all the items from lb1 to lb2
    {
        for (int i = 0; i < lb1.SelectedItems.Count; i++)
        {
            lB2.Items.Add(lb1.SelectedItems[i].ToString());
        }
    }
    private void removeall_Click(object sender, EventArgs e) //problem is here. adding all the items from lb2 to lb1
    {
    }

将项目从一个列表框传输到另一个列表框

因为要将所有项目从一个列表框传输到另一个列表框,所以不仅要为列表框中的每个项目循环访问所选项目,而且不仅要为所选项目循环。

因此,请将ListBox.SelectedItems的用法更改为ListBox.Items,假设您还记得删除这些项目,您的代码应该按预期工作。

for (int i = 0; i < lb1.Items.Count; i++)
{
    lB2.Items.Add(lb1.Items[i].ToString());
}
lb1.Items.Clear();

你可以做这样的事情:

private void addall_Click(object sender, EventArgs e)
{
    foreach (var item in lb1.Items)
    {
        lB2.Items.Add(item);
    }
}

这将遍历您的列表并将它们全部添加。你会对lb2->lb1做相反的事情。

只需遍历列表中的所有项目,并将每个元素添加到下一个列表中。最后,只需删除所有项目即可。

foreach (var item in listBox1.Items)
{
    listBox2.Items.Add(item);
}
listBox1.Items.Clear();