C#中怎么将listbox中的内容多选,添加到另一个listbox中

woshizhaoxuhui 2014-02-18 08:52:55

foreach(ListItem li in lstLeft.Items)
{
if (li.Selected)
{
lstRight.Items.Add(li);
lstLeft.Items.Remove(li);
}
}

以上代码会报错,说枚举类型可能无法获得,应该是因为ListBox中的项删除后影响
那有什么办法来做呢?
...全文
892 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshizhaoxuhui 2014-02-18
  • 打赏
  • 举报
回复
引用 7 楼 liuchaolin 的回复:
[quote=引用 6 楼 woshizhaoxuhui 的回复:] [quote=引用 3 楼 liuchaolin 的回复:] for (int i = 0; i < lstLeft.Items.Count; i++) { if (lstLeft.Items[i].Selected) { lstLeft.Items[i].Selected = false; lstRight.Items.Add(lstLeft.Items[i]); lstLeft.Items.RemoveAt(i); } }
这个方法只能添加一个item,,[/quote] for (int i = 0; i < lstLeft.Items.Count; ) { if (lstLeft.Items[i].Selected) { lstLeft.Items[i].Selected = false; lstRight.Items.Add(lstLeft.Items[i]); lstLeft.Items.RemoveAt(i); } else { i++; } }[/quote] 可以了,谢谢!
md5e 2014-02-18
  • 打赏
  • 举报
回复
引用 6 楼 woshizhaoxuhui 的回复:
[quote=引用 3 楼 liuchaolin 的回复:] for (int i = 0; i < lstLeft.Items.Count; i++) { if (lstLeft.Items[i].Selected) { lstLeft.Items[i].Selected = false; lstRight.Items.Add(lstLeft.Items[i]); lstLeft.Items.RemoveAt(i); } }
这个方法只能添加一个item,,[/quote] for (int i = 0; i < lstLeft.Items.Count; ) { if (lstLeft.Items[i].Selected) { lstLeft.Items[i].Selected = false; lstRight.Items.Add(lstLeft.Items[i]); lstLeft.Items.RemoveAt(i); } else { i++; } }
woshizhaoxuhui 2014-02-18
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
for (int i = 0; i < lstLeft.Items.Count; i++) { if (lstLeft.Items[i].Selected) { lstLeft.Items[i].Selected = false; lstRight.Items.Add(lstLeft.Items[i]); lstLeft.Items.RemoveAt(i); } }
这个方法只能添加一个item,,
天空丶蒋 2014-02-18
  • 打赏
  • 举报
回复
将数据添加到集合然后重新绑定listbox
md5e 2014-02-18
  • 打赏
  • 举报
回复
for (int i = 0; i < lstLeft.Items.Count; i++) { if (lstLeft.Items[i].Selected) { lstLeft.Items[i].Selected = false; lstRight.Items.Add(lstLeft.Items[i]); lstLeft.Items.RemoveAt(i); } }
我本良人 2014-02-18
  • 打赏
  • 举报
回复
还是给你一个比较完整的代码片段吧,不过ListBox的数据绑定什么的这个就你自己解决了吧,我就不写了。
protected void btn_adduser_Click(object sender, ImageClickEventArgs e)  //从左边的人员列表中向右边的列表中添加有权限的人员
    {
        for (int i = 0; i < ListBox_UserList.Items.Count; i++)
        {
            if (ListBox_UserList.Items[i].Selected)
            {
                ListItem li = ListBox_Selected.Items.FindByText(ListBox_UserList.Items[i].Text);
                if (li == null)
                {
                    ListItem ss = ListBox_UserList.Items[i];
                    ss.Value = ListBox_UserList.Items[i].Value.ToString();
                    ss.Text = ListBox_UserList.Items[i].Text.ToString();
                    ListBox_Selected.Items.Add(ss);
                }
            }
        }
        ListBox_UserList.ClearSelection();
    }
    protected void btn_removeuser_Click(object sender, ImageClickEventArgs e)   //移除有权限列表中的人员
    {
        for (int i = 0; i < ListBox_Selected.Items.Count; i++)
        {
            if (ListBox_Selected.Items[i].Selected)
            {
                ListBox_Selected.Items.RemoveAt(i);
            }
        }
        ListBox_UserList.ClearSelection();
    }
我本良人 2014-02-18
  • 打赏
  • 举报
回复
int count = ListBox2.Items.Count;
        int index = 0;
        for (int i = 0; i < count; i++)
        {
            ListItem item = ListBox2.Items[index];
            ListBox2.Items.Remove(item);
            ListBox1.Items.Add(item);
        }
        index++;





int count = ListBox2.Items.Count;
        int index = 0;
        for (int i = 0; i < count; i++)
        {
            ListItem item = ListBox2.Items[index];
            if (ListBox2.Items[index].Selected == true)
            {

                ListBox2.Items.Remove(item);
                ListBox1.Items.Add(item);
                index--;
            }
            index++;
        }

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧