SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: vbguest en Domingo 15 de Junio de 2003, 18:57
-
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:
-
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...
-
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
-
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