请问,这个关于listbox的代码哪里错了

aetvw34 2011-07-04 07:04:34
List<object> list_清空 = new List<object>(); //创建一个集合,用来装没有选中的
foreach (var c in listBox4.Items)
{
if (c != listBox4.SelectedItem)
{
list_清空.Add(c); //把没有选定的项,加进集合
}
}
foreach (var c in list_清空)
{
listBox4.Items.Remove(c); //执行删除此项
}

结果我用Ctrl键选定多项,结果怎么最后只留下一项呢,有些选定了的,也删了
...全文
97 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenquan123 2011-07-05
  • 打赏
  • 举报
回复
    protected void Button1_Click(object sender, EventArgs e)
{
List<ListItem> list = new List<ListItem>();
for (int i = 0; i < ListBox1.Items.Count; i++)
{
if (!ListBox1.Items[i].Selected)
list.Add(ListBox1.Items[i]);
}
foreach (ListItem item in list)
ListBox1.Items.Remove(item);
}
wang_jian_999 2011-07-05
  • 打赏
  • 举报
回复
List<object> list_清空 = new List<object>(); //创建一个集合,用来装没有选中的
for (int i = 0; i < this.listBox1.Items.Count; i++)
{



if (!this.listBox1.SelectedIndices.Contains(i))
{
list_清空.Add(this.listBox1.Items[i]); //把没有选定的项,加进集合
}


}



foreach (var c in list_清空)
{


listBox1.Items.Remove(c);



//执行删除 此项
}


qzp000000 2011-07-04
  • 打赏
  • 举报
回复
List<object> list_清空 = new List<object>(); //创建一个集合,用来装没有选中的
for (int i = 0; i < this.listBox1.Items.Count; i++)
{



if (!this.listBox1.SelectedIndices.Contains(i))
{
list_清空.Add(this.listBox1.Items[i]); //把没有选定的项,加进集合
}


}



foreach (var c in list_清空)
{


listBox1.Items.Remove(c);



//执行删除 此项
}


austin_luobj 2011-07-04
  • 打赏
  • 举报
回复
   for (int i = listBox4.SelectedIndices.Count - 1; i > -1; i--)
{
listBox4.Items.RemoveAt(listBox4.SelectedIndices[i]);
}

这个就可以实现了!没必要弄的那么复杂。
aetvw34 2011-07-04
  • 打赏
  • 举报
回复
奇怪,怎么会报错呢
foreach (var c in listBox4.Items)
{
if (!listBox4.SelectedItems.Contains(c))
{
list_清空.Add(c);
}
}


但这样不报错
foreach (var c in listBox4.Items)
{
if (c != listBox4.SelectedItem)
{
list_清空.Add(c);
}
}

上面那个为什么报错呢:说枚举列表发生了改变,两段都改变了的啊
SQL77 2011-07-04
  • 打赏
  • 举报
回复
List<object> list_清空 = new List<object>(); //创建一个集合,用来装没有选中的
foreach (var c in listBox4.Items)
{
if (c != listBox4.SelectedItem) {
list_清空.Add(c); //把没有选定的项,加进集合
}
}
foreach (var c in list_清空)
{
listBox4.Items.Remove(c); //执行删除此项
}

这里应该有问题吧,你都说多选择了,能这样比吗

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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