请高手帮忙????这个是不是.net的bug,有没有人遇到啊????

feeling_vb 2003-08-01 09:25:43
//记录当前删除消息id

int iCount;

if ( this.lsvInforList.SelectedItems.Count<=0 ) return;

iCount = this.lsvInforList.SelectedItems.Count;

for (int i=iCount; i>0; i-- ) {

strApplyId=this.lsvInforList.SelectedItems[i-1].SubItems[1].Text;

//MessageBox.Show ( strApplyId );

this.lsvInforList.SelectedItems[i-1].Remove();

this.lsvInforList.Refresh();

}

//当我注释掉MessageBox.Show ( strApplyId );这一行的时候,就会出错,可是不是每一次删除都出错,报的错是:指定的参数已超出有效值的范围,捕获的异常是ArgumentOutOfRangeException 类;
如果我没有注释的时候就不报错,是什么原因呢??
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feeling_vb 2003-08-01
  • 打赏
  • 举报
回复
对 qimini(循序渐进) !!

是listview


对 juqiang(方枪枪(正在修炼伤心小箭))

如果我从后往前删除是不会出现你说的情况的


对 idiotzeng(白痴)

我就是按照你那个从后往前的循环做的
hehaorome 2003-08-01
  • 打赏
  • 举报
回复
Up!
qimini 2003-08-01
  • 打赏
  • 举报
回复
this.lsvInforList是ListBox?
seaAsky 2003-08-01
  • 打赏
  • 举报
回复
gz
idiotzeng 2003-08-01
  • 打赏
  • 举报
回复


for (int i=this.lsvInforList.SelectedItems.Count; i>0; i-- ) {

juqiang 2003-08-01
  • 打赏
  • 举报
回复
删除了一条纪录后,看看你的SelectedItems[i-1],这条记录可能就没有了啊!你自己想想。。。

最笨的方法是你删除纪录后,重新设置你的循环计数i等于this.lsvInforList.SelectedItems.Count(不要设置为iCount,因为这个value已经改变了),然后循环重新开始。

110,538

社区成员

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

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

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