Programación General > Visual Basic 6.0 e inferiores

 Re: como puedo navegar de un textbox a otro con las flechas

(1/1)

vbguest:
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:
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:
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:
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

Navegación

[0] Índice de Mensajes

Ir a la versión completa