请问一下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行。
绑定时换下面代码就OK了
区别最好看MSDN,第一次选择第一条,第二次取消选择也会触发,导致SelectionRows.Count ==0
Code
datagridview没有click服务器端事件
Dg_SelectionChaged是说当选择一行时执行,当然你的语句是没有错的, 可能是你点的次数多了,呵呵,你可以看看我的GridView的使用这个文章,来我的博客上找一上吧
http://www.cnblogs.com/sufei/archive/2009/03/14/1485995.html
if(this.dg.SelectedRows.Count>0)
{
//执行代码
}