Si lo he usado ProcessCmdKey y seguire tu consejo para no esperar que me pase lo que me comentas y modificar código, para no atrasar el trabajo, lo volveré a usar.
Si lo he usado solo que un poco que patalee en la grillas para hacer el evento enter de la grilla no me obedecia lugo lo pude hacer el se apodera de todo lo que tenga que ver con el teclado es el hombre orquesta todo pasa por ahí cuando se refiere a teclado.
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { if ((!dgvPersonal.Focused) && (!dgvPersonal.IsCurrentCellInEditMode) && (keyData != Keys.F1) && (keyData != Keys.F7)) return base.ProcessCmdKey(ref msg, keyData); if (keyData == Keys.F1) { //aqui la accion del F1 } if (keyData == Keys.Up) { if (dgvPersonal.CurrentRow.Index > 0) { dgvPersonal.CurrentCell = dgvPersonal.Rows[dgvPersonal.CurrentRow.Index - 1].Cells[dgvPersonal.CurrentCell.ColumnIndex]; return true; } } if (keyData == Keys.Down) { _Index = 0; _Index = Convert.ToInt32(dgvPersonal.CurrentRow.Index) + (int)1; if (_Index > dgvPersonal.Rows.Count -1) return false; else if (dgvPersonal.CurrentRow.Index > -1) { dgvPersonal.CurrentCell = dgvPersonal.Rows[dgvPersonal.CurrentRow.Index + 1].Cells[dgvPersonal.CurrentCell.ColumnIndex]; return true; } } if ((keyData == Keys.Return)) { if (tabControl1.SelectedTab == tabItemLista) { Actualizar(); ObtenerID(); this.Personal = (Personal)this._Personales[Helper.IdRows]; dgvPersonal.ClearSelection(); tabControl1.SelectedTab = tabItemDatos; Utilidades.ActivarControles(this, true); } } return true; }
Pedro Ávila
"El hombre sabio querrá estar siempre con quien sea mejor que él."
Lima - Perú