我们知道由于DataGridView的单元格DataGridCell处于编辑的时候,当你按Enter键,那么DataGridView是不会激发KewPress/KeyDown/KeyUp这些事件的,因为这个时候的DataGridView是一个容器。
如果我们需要做一些事情,比如在DataGridCell中输入值后需要对其验证,如这位朋友遇到的这个问题:
http://social.msdn.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/2cc22c92-4771-4af4-89cc-c036cd8b556c 他的需求是:
在DataGridView 单元格编辑状态时
按回车时 判断这个单元格的内容是否确定
如果正确光标进入下一行对应的列的单元格中
如果不正确光标还是停留本单元格中
我们无法直接在DataGridView的KeyPress事件中做处理,原因上面已经说明,也无法使用CellEndEdit这个事件,因为这个事件不一定是通过Enter来触发的,直接鼠标移动到其他单元格也会的,因此我们需要修改一下:
然后将这个控件拖到窗体中 添加KeyPress事件
当然为了保证用户直接将鼠标移动到新的单元格也能做数据的核对,我们还需要添加对这个控件的CellEndEdit事件的处理: