DataGridView在Cell编辑状态响应回车键下的KeyPress/KeyDown/KeyUp事件

我们知道由于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事件的处理:

原文地址:https://www.cnblogs.com/lgx5/p/7416964.html