Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: WHK en 16 Octubre 2009, 03:48 am



Título: Hacer setfocus reemplazando TAB
Publicado por: 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

Código
  1. Private Sub Text4_KeyPress(KeyAscii As Integer)
  2. If KeyAscii = 13 Then
  3.  Text5.SetFocus
  4. End If
  5. 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?


Título: Re: Hacer setfocus reemplazando TAB
Publicado por: BlackZeroX en 16 Octubre 2009, 04:18 am
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!¡.


Título: Re: Hacer setfocus reemplazando TAB
Publicado por: jack06 en 17 Octubre 2009, 05:30 am
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 (http://www.elguille.info/colabora/vb2006/msr_lupa689_AmpliarTextBox.htm)

Salu2


Título: Re: Hacer setfocus reemplazando TAB
Publicado por: cassiani en 17 Octubre 2009, 16:06 pm
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