C#listview控件删除行时提示: InvalidArgument=“0”的值对于“index”无效。

 我来答
z1h2p31983
2012-09-23 · TA获得超过251个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:154万
展开全部
前面加个判断吧
if (listview.SelectedItems.Count>0){
//把你的代码包含进来
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
看作业
2012-09-25 · 贡献了超过105个回答
知道答主
回答量:105
采纳率:50%
帮助的人:12.5万
展开全部
那就是已经删除 要不就重复的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明净还勤恳的小鸥B
2012-09-25
知道答主
回答量:7
采纳率:0%
帮助的人:3.4万
展开全部
Index 需要的是int类型的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangda146
2012-09-23 · TA获得超过1160个赞
知道小有建树答主
回答量:836
采纳率:0%
帮助的人:567万
展开全部
直接用lstvComputers.selectedItems[0].Remove()不行吗?
追问

谢谢你,直接用lstvComputers.selectedItems[0].Remove()也行的。现在我发现问题是这样的:因为在触发btnDelete按钮的click事件时,我用messagebox设置了提示对话框,代码如图:

当选择了lstvComputers中的某一行,再单击btnDelete会弹出操作提示框,显示“是否确定删除改行”,这个时候选择“确定”,但是在点击“确定”的同时之前被选中行就处于未被选中状态,就出现了以上所描述的错误。

追答
嗯  如果你要做判断,那么就在判断前先把你选中的项赋给一个对象,然后在lstvComputers中删除这个对象,代码如下:
ListViewItem lv = lstvComputers.SelectedItems[0]; //把选中的项赋给lv
//这里写提示框的判断
lstvComputers.Items.Remove(lv); //删除lstvComputers中的lv对象
当然这是个理论,毕竟我没这么删除过,你可以试试看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
forzamilan999
2012-09-26 · TA获得超过127个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:89万
展开全部
索引无效,你删除第一个(索引为0)对象时出错了,是不是一个对象没有?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 5条折叠回答
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式