◎◎◎请教各位高手WinForm中关于ListView的SelectedIndexChanged事件的处理◎◎◎

javabeanzhang 2005-01-07 04:12:06
ListView的点击事件代码如下:
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
//this.listView2.SelectedItems.Clear();
SqlConnection Conn = Connection.CreateSqlConnection(2);
int OrderId = Convert.ToInt32(this.listView1.SelectedItems[0].SubItems[0].Text);
SqlCommand StoreProcCommand = new SqlCommand("CustOrdersDetail",Conn);
StoreProcCommand.CommandType = CommandType.StoredProcedure;
StoreProcCommand.Parameters.Add("@OrderId",OrderId);
..............................
..............................
}
问题:在WinForm中我每次第一次点击ListView中的任何一项数据的时候都可以正常通过,而第二次点击的时候this.listView1.SelectedItems[0].SubItems[0].Text 却老是空值Null报错,为什么呀?
在线等待。。。。为什么会这样呢??
...全文
234 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
javabeanzhang 2005-01-07
  • 打赏
  • 举报
回复
哦。我明白了!!
偶刚开始做CS的项目的 :)
那ListView为什么点击的时候是两次的操作呢?
benzite 2005-01-07
  • 打赏
  • 举报
回复
if((this.listView1.SelectedItems!=null)||(this.listView1.SelectedItems.Count!=0))
{
// 这里你可以放心的调用this.listView1.SelectedItems[0]了
}
else
{
// 这里你可以设断点,看看是怎么回事
}
javabeanzhang 2005-01-07
  • 打赏
  • 举报
回复
cdo(cdo)我试了一下还是不行的。。。
if(this.listView1.SelectedItems[0] != null) 就已经报错“指定参数超出有效范围”。
但是我明明是选择了ListView中的一项数据的呀??
哪位师兄有ListView完整的SelectedIndexChanged事件的源代码让小弟参考一下,感激不尽。。。
cdo 2005-01-07
  • 打赏
  • 举报
回复
listview的每次selectindexchanged事件执行时会产生两次动作,第一次读到你的值,第二次读出null,你可以单步跟进调试一下看看。

所以在你得在你的事件里面加上判断语句

if (this.listView1.SelectedItems[0].SubItems[0].Text != null)
{
//你要执行的代码
}
javabeanzhang 2005-01-07
  • 打赏
  • 举报
回复
我使用的是单选的,每次选择一项,在事件中将取出的数据绑定到另外一个ListView中的。。。
就好比数据库中的父表和子表的。选择一个父表中的记录,相应的调出子表的所有记录。
wjcking 2005-01-07
  • 打赏
  • 举报
回复
22
兔子-顾问 2005-01-07
  • 打赏
  • 举报
回复
是多选么?
试试别的属性
javabeanzhang 2005-01-07
  • 打赏
  • 举报
回复
为什么没有人帮我呢??
javabeanzhang 2005-01-07
  • 打赏
  • 举报
回复
各位帮忙呀,我一直等着了。。。

110,566

社区成员

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

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

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