Try handling these two events using the added lastKeyDown field.
private Keys lastKeyDown = Keys.None;
private void gridControl1_CurrentCellKeyDown(object sender, KeyEventArgs e)
{
this.lastKeyDown = e.KeyCode;
}
private void gridControl1_CurrentCellValidating(object sender, CancelEventArgs e)
{
if(lastKeyDown != Keys.Enter && lastKeyDown != Keys.Escape)
e.Cancel = true;
}