como puedo pasar de un textbox a otro con el intro sin tener que dar al tabulador
como puedo pasar de un textbox a otro con el intro sin tener que dar al tabulador? lo que pasa es que tengo mas de 200 textbox, por lo que me interesa meterlo en un modulo, o algo asi.
Gracias por la ayuda,
Javier.
Gracias por la ayuda,
Javier.
Bien... mira, eso lo preguntaste en mi foro y alla te respondi...
De todas maneras te digo que puedes usar SendKeys "{TAB}" en lugar de usar Text2.SetFocus, con la ventaja de que el foco pasa a cualquier control que en el orden TabIndex, ya sean controles normales o controles pertenecientes a una matriz de controles...
Segun te explico, todo tu codigo se redice a solo tres lineas...
Para mas detalles puedes ver la respuesta el el foro http://programador.foro.st/ donde aparte de ponerte la explicacion de la ligica en el post que hiciste, tambien te coloque un archivo adjunto, para que se pueda descargar y probar...
Hasta pronto...
Y visiten mi foro en http://programador.foro.st/
De todas maneras te digo que puedes usar SendKeys "{TAB}" en lugar de usar Text2.SetFocus, con la ventaja de que el foco pasa a cualquier control que en el orden TabIndex, ya sean controles normales o controles pertenecientes a una matriz de controles...
Segun te explico, todo tu codigo se redice a solo tres lineas...
Para mas detalles puedes ver la respuesta el el foro http://programador.foro.st/ donde aparte de ponerte la explicacion de la ligica en el post que hiciste, tambien te coloque un archivo adjunto, para que se pueda descargar y probar...
Hasta pronto...
Y visiten mi foro en http://programador.foro.st/
si tienes mas de 200 textbox espero que tengas una matriz de controles con ellos, en vez de haberles asignado nombres unicos a cada uno de ellos.
Si es una matriz de controles, puedes usar el evento keypress del control matriz, de modo que cuando keyasii sea igual a 13, pases al siguiente control (index+1) a no ser que index valga 199, en cuyo caso pasarías al control 0:
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Dim NumControl As Integer
If KeyAscii = 13 Then
If Index = 199 Then ' Numero de controles - 1
NumControl = 0
Else
NumControl = Index + 1
End If
Text1(NumControl).SetFocus
End If
End Sub
Si no tienes una matriz de controles, puedes hacer una funcion a la que le pases el textbox desde el que fue pulsado INTRO para que pase al control siguiente que hayas definido, pero es un poco más costoso.
Saludos
Si es una matriz de controles, puedes usar el evento keypress del control matriz, de modo que cuando keyasii sea igual a 13, pases al siguiente control (index+1) a no ser que index valga 199, en cuyo caso pasarías al control 0:
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Dim NumControl As Integer
If KeyAscii = 13 Then
If Index = 199 Then ' Numero de controles - 1
NumControl = 0
Else
NumControl = Index + 1
End If
Text1(NumControl).SetFocus
End If
End Sub
Si no tienes una matriz de controles, puedes hacer una funcion a la que le pases el textbox desde el que fue pulsado INTRO para que pase al control siguiente que hayas definido, pero es un poco más costoso.
Saludos
