Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将项目从一个列表框转移到另一个列表框_C#_Winforms_Listbox - Fatal编程技术网

C# 将项目从一个列表框转移到另一个列表框

C# 将项目从一个列表框转移到另一个列表框,c#,winforms,listbox,C#,Winforms,Listbox,到目前为止,我已经完成了将单个选择项从一个lb1转移到lb2,反之亦然。现在的问题是将整个数据列表从lb1传输到lb2,反之亦然。如果有人能帮忙的话。 使用for循环会更好 我正在使用以下代码: private void add_Click(object sender, EventArgs e) { if (lb1.SelectedItem != null) { lb2.Items.Add(lb1.SelectedItem)

到目前为止,我已经完成了将单个选择项从一个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
    {

    }
private void add\u单击(对象发送者,事件参数e)
{
如果(lb1.SelectedItem!=null)
{
lb2.Items.Add(lb1.SelectedItem);
lb1.Items.Remove(lb1.SelectedItem);
}
其他的
{
MessageBox.Show(“未选择任何项目”);
}
}
私有无效删除\单击(对象发送方,事件参数e)
{
如果(lb2.SelectedItem!=null)
{
lb1.Items.Add(lb2.SelectedItem);
lb2.Items.Remove(lb2.SelectedItem);
}
其他的
{
MessageBox.Show(“未选择任何项目”);
}
}
private void addall_Click(objectsender,EventArgs e)//问题在这里。将所有项目从lb1添加到lb2
{
对于(int i=0;i
因为要将所有项目从一个列表框转移到另一个列表框,而不仅仅是所选项目,所以必须循环列表框中的每个项目,而不仅仅是所选项目

因此,请更改
ListBox的用法。选择editems
ListBox.Items
,如果您还记得删除这些项,则代码应按预期工作

for (int i = 0; i < lb1.Items.Count; i++)
{
    lB2.Items.Add(lb1.Items[i].ToString());
}
lb1.Items.Clear();
for(int i=0;i
因为要将所有项目从一个列表框转移到另一个列表框,而不仅仅是所选项目,所以必须循环列表框中的每个项目,而不仅仅是所选项目

因此,请更改
ListBox的用法。选择editems
ListBox.Items
,如果您还记得删除这些项,则代码应按预期工作

for (int i = 0; i < lb1.Items.Count; i++)
{
    lB2.Items.Add(lb1.Items[i].ToString());
}
lb1.Items.Clear();
for(int i=0;i
您可以这样做:

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

这将循环浏览您的列表并将它们全部添加。您可以对
lb2->lb1
执行相反的操作,您可以执行以下操作:

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

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

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

它起作用了,在所有项目移动后如何清除lb1?在循环后调用
lb1.Items.clear()
。它起作用了,在所有项目移动后如何清除lb1?在循环后调用
lb1.Items.clear()