8 de marzo de 2018

Enter vertical en un Grid

Esta es una solución planteada por mi compañero de trabajo Pedro Valle para lograr un Enter vertical en un Grid de modo mas eficiente.

He visto soluciones anteriores pero el foco lo obtenía siempre la siguiente columna después de haberse movido el puntero a la siguiente fila y el código estaba dado en el evento Keypress. Necesitábamos que después del Enter el foco se mantuviera en la misma columna.

En esta nueva solución el código lo insertamos en el evento GotFocus de la columna siguiente a la que se le hizo el Enter. En el caso de que la columna en la que se hizo el Enter sea la ultima del Grid, la columna siguiente será la primera.

Llamaremos ColumnX a la columna donde se hará el Enter.

IF LASTKEY() = 13
  CLEAR TYPEAHEAD
  KEYBOARD '#' CLEAR
  SKIP
  Thisform.Grid1.Refresh()
  Thisform.Grid1.ColumnX.SetFocus()
ENDIF

Saludos.

Alex Moreno Candiotty

1 comentario :

  1. A mi me funciona asi:

    Evento KeyPress del Form

    If nKeyCode = 13
    Nodefault
    Keyboard "{DNARROW}"
    EndIf

    ResponderEliminar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.