关于listView控件的问题.急.高手帮忙

zbhsw 2004-08-13 08:21:24
我设置了ListView控件的MultiSelect属性为True.
但当我选中我行删除时,出了大问题.把我没要删的删了.代码如下
public void buttonx_click(object sender,System.EventArgs e)
{
for(int i=0;i<=listView1.SelectedItems.Count-1;i++)
{
ListViewItem li=listView1.SelectedItems[i];
listView1.Items.Remove(li);
}
}
这个问题我都搞了一天了,再过两天要交东西了.求高手帮忙.分不够再加.谢了.
...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbhsw 2004-08-13
  • 打赏
  • 举报
回复
通过了.谢谢大家.
qimini 2004-08-13
  • 打赏
  • 举报
回复
你试试这样:
public void buttonx_click(object sender,System.EventArgs e)
{
foreach(ListViewItem li in listView1.SelectedItems)
{
listView1.Items.Remove(li);
}
}
sjzwinfor 2004-08-13
  • 打赏
  • 举报
回复
你现在的代码是要将0-你的选择点全部删除呀
张海霖 2004-08-13
  • 打赏
  • 举报
回复
listView1.SelectedItems[i];这里面的序号是不是选中集合中的序号
MessageBox.show(ListViewItem.toString());
MessageBox.show(i);
asusharp 2004-08-13
  • 打赏
  • 举报
回复
刚帮你试了一下.你这里写得不对
public void buttonx_click(object sender,System.EventArgs e)
{
for(int i=0;i<=listView1.SelectedItems.Count-1;i++)//错误,正确的应该见下面.
{
ListViewItem li=listView1.SelectedItems[i];
listView1.Items.Remove(li);
}
}
//正确代码
for(int i=listView1.SelectedItems.Count-1;i>=0;i--)

原因:
由于每次删除一个条目后ListViewItems和SelectedItems中的内容都会发生变化.因此需要从后向前删除,这样才能保证当前选中的条目都能删除!

110,532

社区成员

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

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

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