C# 怎样把 listbox 里的多个选中项 一次性删除
privatevoidbutton2_Click(objectsender,EventArgse){this.listBox1.Items.RemoveAt(this.l...
private void button2_Click(object sender, EventArgs e)
{
this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
}
现在的情况是,如果我在Listbox选中了两个item,点击一次button只删除一个,需要再点击一次才能删除第二个选中项。
按照这样的话我如果我选中了多项的话,需要点击多次才能删除我的所有选中项了。。。
请高手指教,怎样写才能点击一次button就能删除选中项。多谢啦~
(我是刚学程序的,很多都不会,也许这个问题很弱智,还请多多包涵~~) 展开
{
this.listBox1.Items.RemoveAt(this.listBox1.SelectedIndex);
}
现在的情况是,如果我在Listbox选中了两个item,点击一次button只删除一个,需要再点击一次才能删除第二个选中项。
按照这样的话我如果我选中了多项的话,需要点击多次才能删除我的所有选中项了。。。
请高手指教,怎样写才能点击一次button就能删除选中项。多谢啦~
(我是刚学程序的,很多都不会,也许这个问题很弱智,还请多多包涵~~) 展开
8个回答
展开全部
private void button2_Click(object sender, EventArgs e)
{
int b = listBox_1.SelectedItems.Count;//获取要删除项的个数
for (int i = b-1; i >= 0; i--)//设立循环一个一个的删除
{
int a = listBox_1.SelectedIndex;//获取要删除项的索引
listBox_1.Items.RemoveAt(a);//根据索引删除第一个项直到最后一个项被删除
}
}
{
int b = listBox_1.SelectedItems.Count;//获取要删除项的个数
for (int i = b-1; i >= 0; i--)//设立循环一个一个的删除
{
int a = listBox_1.SelectedIndex;//获取要删除项的索引
listBox_1.Items.RemoveAt(a);//根据索引删除第一个项直到最后一个项被删除
}
}
展开全部
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);
}
按我写的这样弄吧
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);
}
按我写的这样弄吧
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法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);
}
}
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (int i = listBox1.SelectedItems.Count - 1; i >= 0; i--)
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
{
listBox1.Items.Remove(listBox1.SelectedItem);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=listBox1.Items.Count-1;i>=0;i--){
if(listBox1.Items[i].Selected)
listBox1.Items.RemoveAt(i);
}
if(listBox1.Items[i].Selected)
listBox1.Items.RemoveAt(i);
}
追问
按您这样写好像行不通,不过按照你的思路我写了下面的这个
for (int i = this.listBox1.Items.Count - 1; i >= 0; i--)
{
if (this.listBox1.SelectedIndex == i)
listBox1.Items.RemoveAt(i);
}
效果还是一样,按一下按钮就删除一个,再按一次又删除一个。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询