为什么能在ListView中找到item,但删除该item时就出现“未将对象引用设置到对象的实例”异常

chldpw 2007-08-14 11:03:35
为什么能在ListView中找到item,但删除该item时就出现“未将对象引用设置到对象的实例”异常
...全文
307 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yilanwuyu123 2008-05-10
  • 打赏
  • 举报
回复
这个ListView new 出来以后 Item都是空的厄。
ljycszmsdn 2008-05-10
  • 打赏
  • 举报
回复
关注
happychou 2008-05-10
  • 打赏
  • 举报
回复
这个现象我好像碰到过,这是因为你的ListView中的初始项为空,也是就是说所有的项都是你添加的,即:this.ListView1.add("XXXXXXX");
如果你在初始的项中添加一项,不是以代码的形式要以在ListView控件的上添加......
不晓得我说的能不能帮助你
baihe_591 2008-05-10
  • 打赏
  • 举报
回复
不是”未未将对象引用设置到对象的实例”出错,应该是null
删除时加
if (list_6243.SelectedItems.Count > 0)
{
//删除。
}
ljycszmsdn 2008-05-10
  • 打赏
  • 举报
回复
NewListItem item;
item = this.listView1.FindItemWithText(this.listView1.Items[index].Text);
item.Remove();
chldpw 2007-08-15
  • 打赏
  • 举报
回复
this.listView1.Items.RemoveAt(index)之上的代码执行时不会出错,但执行到this.listView1.Items.RemoveAt(index)就捕捉到"未将对象引用设置到对象的实例”异常
chldpw 2007-08-14
  • 打赏
  • 举报
回复
各位楼上高人,还是会出现“未将对象引用设置到对象的实例”异常啊
chldpw 2007-08-14
  • 打赏
  • 举报
回复
贴错了,是:
int index = this.listView1.Items[localclientid].Index;
this.listView1.Items.RemoveAt(index);
BearRui 2007-08-14
  • 打赏
  • 举报
回复
这样也行

NewListItem item = (NewListItem)this.listView1.Items[index];
int iCount = listView1.Items.Count;
int iDel = -1;
for(int i=iCount-1;i>=0;i--)
{
if((NewListItem)ritem==listView1.Items[i])
{
iDel = i;
break;
}
}
listView1.Items.RemoveAt(iDel);
BearRui 2007-08-14
  • 打赏
  • 举报
回复
NewListItem item = (NewListItem)this.listView1.Items[index];
foreach (ListViewItem ritem in this.listView1.Items)
{
if((NewListItem)ritem==item)
this.listView1.Items.RemoveAt(index);
}
不能在foreach删除节点

try:
NewListItem item = (NewListItem)this.listView1.Items[index];
int iCount = listView1.Items.Count;
for(int i=iCount-1;i>=0;i--)
{
if((NewListItem)ritem==listView1.Items[i])
this.listView1.Items.RemoveAt(i);
}
ztenv 2007-08-14
  • 打赏
  • 举报
回复
NewListItem item = (NewListItem)this.listView1.Items[index];//这行做什么?
chldpw 2007-08-14
  • 打赏
  • 举报
回复
不用foreach,我用
NewListItem item = (NewListItem)this.listView1.Items[index];
this.listView1.Items.RemoveAt(index);
也不行
chldpw 2007-08-14
  • 打赏
  • 举报
回复
代码已贴上,请楼上能者提提意见,这个代码是放在线程池中运行的
yiwindlele 2007-08-14
  • 打赏
  • 举报
回复
不要在FOREAH里执行删除命令......
chldpw 2007-08-14
  • 打赏
  • 举报
回复
NewListItem item = (NewListItem)this.listView1.Items[index];
foreach (ListViewItem ritem in this.listView1.Items)
{
if((NewListItem)ritem==item)
this.listView1.Items.RemoveAt(index);
}
注:ListView中的Item是一个自定义的Item(继承ListItem,并加了几个新属性)
yiwindlele 2007-08-14
  • 打赏
  • 举报
回复
晒源码....
ll124993513 2007-08-14
  • 打赏
  • 举报
回复
关注。。。。。。
lovefootball 2007-08-14
  • 打赏
  • 举报
回复
代码
BearRui 2007-08-14
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例”异常啊
-------------------
这个异常出现在哪里,是不是你this.listView1.Items[localclientid]这句出错了。
冰萍子 2007-08-14
  • 打赏
  • 举报
回复
最好贴出完整的代码,肯定localclientid代表的地方没有值

110,567

社区成员

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

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

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