关于SelectedIndexChanged事件的一个問題(winform)

mqmmx 2005-09-30 02:10:17
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text);
}

以上代码在执行后第一次鼠标点击时沒有错误,后面的几次点击为什么都报错,是什么原因呢?
难道鼠标第二次点击时先触发取消选中再触发选中事件吗?有什么解决方法?
...全文
198 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mqmmx 2005-09-30
  • 打赏
  • 举报
回复
是我的错,原来“不睡觉的鱼”是正解
mqmmx 2005-09-30
  • 打赏
  • 举报
回复
楼上两位的答案还是不对,两位在各自的机器上运行通过了吗?不会吧
zkw 2005-09-30
  • 打赏
  • 举报
回复
加个条件if(listView1.SelectedItems[0].SubItems[0] != null)
MyLf 2005-09-30
  • 打赏
  • 举报
回复
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(listView1.SelectedItems.Count>0)
{
MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text);
}
}
mqmmx 2005-09-30
  • 打赏
  • 举报
回复
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
try
{
MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我改成这样后,我选了一下,会先报错,然后显示我选中的內容,这时为什么
mqmmx 2005-09-30
  • 打赏
  • 举报
回复
不明白,楼上什么意思
hjf1223 2005-09-30
  • 打赏
  • 举报
回复
没错,那就是Items的索引越界了.你仔细检查一下Items.Count 是否等于0
lyb_abiandbel 2005-09-30
  • 打赏
  • 举报
回复
是不是又是0,1 变成1,2的问题?
mqmmx 2005-09-30
  • 打赏
  • 举报
回复
楼上两位何不写一小段代码试试,我是之前加了两句,所以一定是有选中的內容的。
listView1.Items.Add("abc").SubItems.Add("cc");
listView1.Items.Add("cde").SubItems.Add("dd");
mqmmx 2005-09-30
  • 打赏
  • 举报
回复
报错 指定的参数已超出有效值的范围。参数名:index
cj460cn 2005-09-30
  • 打赏
  • 举报
回复
你在事件加一个条件呢.if(选中){MessageBox.show();} 不过我也没试过.
hjf1223 2005-09-30
  • 打赏
  • 举报
回复
报什么错呢?是不是你选择的那个Item没有SubItems呢?最大的可能就是这个了.

110,529

社区成员

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

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

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