为了账号安全,请及时绑定邮箱和手机立即绑定

C# 怎样把 listbox 里的多个选中项 一次性删除

C# 怎样把 listbox 里的多个选中项 一次性删除

C#
凤凰求蛊 2018-08-01 13:13:40
private void button2_Click(object sender, EventArgs e){ this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);}现在的情况是,如果我在Listbox选中了两个item,点击一次button只删除一个,需要再点击一次才能删除第二个选中项。按照这样的话我如果我选中了多项的话,需要点击多次才能删除我的所有选中项了。。。请高手指教,怎样写才能点击一次button就能删除选中项。多谢啦~(我是刚学程序的,很多都不会,也许这个问题很弱智,还请多多包涵~~)
查看完整描述

2 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

if (listBox1.Items[i].selected)
this.listBox1.Items.RemoveAt(i);
} 这样明显有问题 你item里面有10个元素 你删了3个 还有几个? remove 1之后 原来的2就变成了1 原来的1被移除了 你在移除2 就是移除的是3

ListBox a1 = new ListBox();
object[] selected_objs = new object[a1.SelectedItems.Count];
a1.SelectedItems.CopyTo(selected_objs, 0);
foreach (object oval in selected_objs)
{
a1.Items.Remove(oval);
}

按我写的这样弄吧

查看完整回答
反对 回复 2018-08-08
?
DIEA

TA贡献1820条经验 获得超2个赞

方法1
void Btn_DeleteClick(object sender, System.EventArgs e)
{
ListBox.SelectedIndexCollection indices =this.listBox1.SelectedIndices;
int selected=indices.Count;
if(indices.Count>0)
{
for(int n=selected -1;n>=0;n--)
{
int index =indices[n];
listBox1.Items.RemoveAt(index);
}
}
}
方法2
void Btn_DeleteClick(object sender, System.EventArgs e)
{
for(int i=this.listBox1.Items.Count-1;i>=0;i--)
{
this.listBox1.Items.Remove(this.listBox1.SelectedItem);
}
}

查看完整回答
反对 回复 2018-08-08
  • 2 回答
  • 0 关注
  • 967 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信