xubidu |
Trucos de Visual Basic 6 |
Cómo hacer que una aplicación funcione con <Enter> en vez de con <Tab> |
|
|
Si señor, siempre sale el típico pringado que dice: "pues con el MS-DOS iba todo con enter, quiero que en Windows también vaya así...". No se por qué Bill quiso que todo fuera con la tecla de tabulación en lugar del enter, si alguien lo sabe que me lo explique. Bufff, la cuestión es que tu cliente quiere que vaya con el dichoso intro, pos venga, créate un formulario con unos cuantos TextBox y unos otros CommandButton y mete esto en el Load del formulario: Private Sub Form_Load() Lo anterior es para que el formulario reciba los eventos del teclado antes que los controles. A partir de aquí podemos crear un controlador de teclado para nuestra aplicación asignando acciones a diferentes teclas (F1, Esc, etc.). Pero tranquilos, ya nos ocuparemos del teclado pronto. De momento continuamos poniendo el siguiente código en el evento KeyPress del formulario: Private Sub Form_KeyPress(KeyAscii As Integer) Como veis, cuando recibimos un <Enter> (código 13) enviamos un <Tab> con la función SendKeys. Ahora el formulario funciona con las dos teclas. El True del SendKeys es para procesar las pulsaciones antes de continuar con la siguiente línea de código. Consejo sobre el SendKeys: si no os funciona con True, metédle False y viceversa (jaja). Vale, pos ya funciona pero cuidadín con los botones porqué el interceptan el evento de teclado (el enter) antes que el formulario por mucho KeyPreview que pongamos. La solución, hacerlo a mano claro. Con el evento Click de los botones enviamos el foco a el control deseado. Private Sub Command1_Click() En éste caso, paso el control del Command1 al Command2 y del Command2 al Text1.
Bueno, ésta es una solución. Hay otras, pero la mejor es convencer al pringado de turno de que Bill ha querido que Windows funcionara con <Tab>, y los designios de Bill son inescrutables...
Bájate el zip con el ejemplo pulsando aquí.
Josep Gotarra
|