• Sábado 4 de Mayo de 2024, 17:19

Autor Tema:  Re: como puedo navegar de un textbox a otro con las flechas  (Leído 2189 veces)

vbguest

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: como puedo navegar de un textbox a otro con las flechas
« en: Domingo 15 de Junio de 2003, 18:57 »
0
Saludos amigos solo quisiera saber como hago para navegar de un textbox a otro con las flechas de navegacion arriba,abajo,drecha,izquierda ya que solo lo hace con tab o con enter al incluir un pequeño codigo   ayudaaaaaaaaaaaa.:hitcomp:

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: como puedo navegar de un textbox a otro con las flechas
« Respuesta #1 en: Domingo 15 de Junio de 2003, 21:29 »
0
En el evento _KeyDown puedes definir la función que quieras para cada pulsación del teclado:  únicamente tienes que saber que la flecha a la izquierda es KeyCode = 37; la flecha arriba es KeyCode = 38; la flecha a la derecha es KeyCode = 39; y la flecha abajo es KeyCode = 40.

Así en el Text3_KeyDown puedes poner

If KeyCode = 13 or KeyCode = 40 then
   Text4.SetFocus
elseIf KeyCode = 38 then
   Text2.SetFocus
......
end If

Creo que está claro, ¿no?  Pues a tu disposición...

vbguest

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: como puedo navegar de un textbox a otro con las flechas
« Respuesta #2 en: Lunes 16 de Junio de 2003, 15:45 »
0
muchas gracias pero tengo un formulario con alrededor de 40 campos de texto uno debajo del otro lo que quisiera es poder subir o bajar de campo con las flechas de navegacion abra una funcion o algo que pueda hacer para no repetir el mismo codigo por cada campo, gracias de antemano

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
como puedo navegar de un textbox a otro con las flechas de n
« Respuesta #3 en: Lunes 16 de Junio de 2003, 23:39 »
0
A ver qué te parece esta solución:  en lugar de nominar a cada textbox con nombres diferentes, llámalos a todos igual modificando únicamente su índice (array de textboxes) y el evento _KeyDown le pones así:

Private Sub txt_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Or KeyCode = 40 Then
        If Index < 40 Then             ' Suponiendo que tengas 40 campos...
            txt(Index + 1).SetFocus
        Else
            CmdAceptar.SetFocus    ' Envías el foco al botón de Aceptar los cambios, por ejemplo...
        End If
    ElseIf KeyCode = 38 Then
        If Index > 0 Then
            txt(Index - 1).SetFocus
        End If
    End If
End Sub

De esta forma no tienes que controlar el evento nada más que en una sola subrutina.

Saludos