Hacer setfocus reemplazando TAB

Iniciado por WHK, 16 Octubre 2009, 03:48 AM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Hola, resulta que el orden de las cajas de texto en un proyecto que estoy haciendo no están en orden alfabética ni por orden de creación por lo tanto cuando presiono tab en un textbox me manda a otro textbox de mas arriba, por lo tanto como no están en orden quería capturar la tecla tab en cada caja de texto para hacer setfocus al textbox siguiente pero el problema es que no me lo captura  :P

Código (vb) [Seleccionar]
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
  Text5.SetFocus
End If
End Sub


Lo hize con el botón enter que es el 13 pero intenté ponerle msgbox keyascii para ver cual es el valor de la tecla tab y no me lo captura  :-\ .
Como puedo capturar el tabulador y hacerle setfocus al textbox siguiente?

BlackZeroX

#1
la constantes es vbkeytab...

Forma Dificil
Aun asi no captura dicha tecla usalo con api y con un hook a el teclado o Form (como te acomodes mejor) y cuando se este seleccionado un texbox y se oprima tabulador haga el setfocus.

Nota: Practicamente casi todas las constantes de clas del teclado inician con "vbkey"

Forma Facil
Una forma aun mas sencilla es cambiando la propiedad TabIndex en tiempo de Diseño

Dulces Lunas!¡.
The Dark Shadow is my passion.

jack06

#2
wenas, justamente yo andava buscando algo parecido y encontre una clase para los text, fijate, es ta muy weno el ejemplo, tiene la opcion de pasar a otro text, pulsando la tecla TAB, las flechas direccionales y el enter, y otras opciones mas....  :rolleyes:

http://www.elguille.info/colabora/vb2006/msr_lupa689_AmpliarTextBox.htm

Salu2
(̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ €l $åßîø nø d nµn¢å tødø lø qµ£ Þî£n$å, Þ£®ø $î£mÞ®£ Þî£n$å tødø lø qµ£ d (̅_̅̅_̅(̅_̅_̅_̅_̅() ڪ

cassiani

Cita de: WHK en 16 Octubre 2009, 03:48 AM
Hola, resulta que el orden de las cajas de texto en un proyecto que estoy haciendo no están en orden alfabética ni por orden de creación por lo tanto cuando presiono tab en un textbox me manda a otro textbox de mas arriba, por lo tanto como no están en orden quería capturar la tecla tab en cada caja de texto para hacer setfocus al textbox siguiente pero el problema es que no me lo captura  :P

Como dice BlackZeroҖ, basta con asignarle en la propiedad "tabindex" del texbox, un número que corresponda al orden en que recibiran el foco, independientemente de la posición en el formulario. Es justamente por eso, que al presionar el tab, te envia el foco a otros controles de mas arriba, ya que por defecto ya vienen con in index asignado en dicha propiedad.

No hace falta hacer uso de clases para eso .. o.O