首页 新闻 会员 周边 捐助

DataGridView的两个事件SelectionChanged和Click有何不同

0
悬赏园豆:10 [已解决问题] 解决于 2009-06-19 16:04

请问一下Winform中的DataGridView控件的两个事件SelectionChanged和Click事件有和不同,另外我想问的是,SelectionChanged事件的招待顺序是怎样的?我在我的程序中用了如下代码:

private void form_Load(object sender,EventArgs e)

{

  ...查询数据库

  Dg.DataSourece = DataSet.Tables[0];//绑定数据源

}

private void Dg_SelectionChaged(object sender,EventArgs e)

{

.....若干操作

this.txtName.Text = this.dg.SelectedRows[0].Cells["EmployeeName"].Value.ToString();

}

在调试时,我发现SelectionChanged会被执行三次?而当执行到第二次的时候,就会出错了,提示SelectedRows的索引超出范围?

 

后面我用了Click事件来处理就没有上述问题,可是执行起来很慢,请问大家该如何优化呢?我就是很简单的查询一个数据表然后绑定而已,数据表的行数不会超过200行。

lemontree的主页 lemontree | 初学一级 | 园豆:0
提问于:2009-06-18 10:02
< >
分享
最佳答案
-2

绑定时换下面代码就OK了

区别最好看MSDN,第一次选择第一条,第二次取消选择也会触发,导致SelectionRows.Count ==0

Code

 

 

winzheng | 大侠五级 |园豆:8797 | 2009-06-18 11:08
其他回答(3)
0
邀月 | 园豆:25475 (高人七级) | 2009-06-18 10:25
-1

Dg_SelectionChaged是说当选择一行时执行,当然你的语句是没有错的, 可能是你点的次数多了,呵呵,你可以看看我的GridView的使用这个文章,来我的博客上找一上吧

http://www.cnblogs.com/sufei/archive/2009/03/14/1485995.html

苏飞 | 园豆:2024 (老鸟四级) | 2009-06-18 13:38
0

if(this.dg.SelectedRows.Count>0)

{

  //执行代码

}

LoujaDy | 园豆:908 (小虾三级) | 2009-06-18 22:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册