问题提出:
当点击一TxtBox时,弹出一个DataGridView数据框,通过checkbox的选中状态以及LostFocus事件来重新设置原txtbox里的内容,然而,在弹出的数据框中改变一checkbox的选中状态时,这时,不进行任何操作,直接将光标移开此数据框,触发LostFocus事件进行逻辑处理,这时会发现,刚才改变的选中状态并没有得到反应;
原因:
LostFocus事件的调用顺序优先于CellEndEdit,因此在没有进行按下回车,光标选中其他数据行操作时,LostFocus里执行的逻辑处理是没有得到改变反应的,所以是改变之前的状态;
解决方案:
在LostFocus事件开始调用EndEdit()方法,强制提交数据框内的数据变化。