日期:2014-05-19  浏览次数:20730 次

winform的datagridview的绑定问题(在线等待)?
我每次绑定一个datagridview数据,它的dataGridView1_SelectionChanged事件都要触发三次,谁知道是什么原因?

------解决方案--------------------
跟数据源改变没有关系。其实是datagridview的内部实现机制决定的,每次在窗体上load一个datagridview时,系统都会执行很多后台代码,触发很多事件,比如ColumnHeadersHeightChanged BindingContextChanged ColumnStateChanged ColumnHeadersHeightChanged ColumnAdded ColumnStateChanged CellEnter CellStateChanged SelectionChanged CellStateChanged等等,不详细说了,第一次触发SelectionChanged 时把SelectedCell设置为[0,0],然后才能触发后面的CellEnter,第二次触发时为null,也可能是为了完成后面的其他事件,第三次是最后显示前触发的,所以我们看到第一格显示为选中状态。
同样道理,.net里面很多控件的很多事件都是这样的,至于为什么搞成这样,只能问微软了。
——以上个人意见,仅供参考