将项目从一个列表框传输到另一个列表框
本文关键字:列表 传输 另一个 一个 项目 | 更新日期: 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();