原文地址:http://www.sdfengxi.com/archives/243
今天在项目中遇到一个问题,在更改DataGridview的绑定数据源为循环list为每一列赋值之后(之前为直接通过dgvMain.DataSource=list的方式绑定),在RowEnter事件中报错提示无法获取到单元格的值。
搜索了下这个问题,原来rowEnter会有四次激发该事件的时机,当DataGridView在最初加载时也发生RowEnter事件,只有最后一次是必须的,如何避免不必要的事件过程,可以检测CurrentRow参数,当CurrentRow无效时,不执行RowEnter事件代码,从而提高系统的响应效率。
使用c#来说可以通过判断datagridview的CurrentRow==null来判断是否需要执行该事件,like
private void dgvU8BillList_RowEnter(object sender, DataGridViewCellEventArgs e) { if (dgvU8BillList.CurrenRow == null) return;