Sabemos que en algunos programas existen algunos atajos (como: tecla Shift para minimizar, tecla ESC para salir, Ctrl+S para guardar, Alt+x para salir, etc.). Ha habido algunas introducciones en el pasado que se pueden hacer usando la API de Win32, pero es demasiado engorroso. De hecho, el propio VB ya nos ha proporcionado esta función.
Creemos un nuevo formulario Form1. Para las operaciones de teclado, podemos ver tres eventos: KeyPress(), KeyDown y KeyUp. Los presentaré respectivamente a continuación:
El evento KeyPress() ocurre cuando el usuario presiona y suelta una tecla ANSI (ANSI son los caracteres ASCII visibles del 1 al 127).
gramática
descripción parcial
objeto es una expresión de objeto cuyo valor se "aplica a" un objeto de la lista.
índice es un número entero que identifica de forma única un control en la matriz de control (solo disponible para matrices de control).
keyascii es un número entero que devuelve un código de clave ANSI numérico estándar. Keyascii pasa un objeto por referencia, haciendo posibles cambios en él.
Envía un personaje diferente. Cambiar keyascii a 0 cancela la pulsación de tecla para que el objeto no reciba caracteres.
ilustrar
El objeto enfocado recibe este evento. Un formulario puede recibir este evento solo si la propiedad KeyPreview está establecida en True. Un evento KeyPress puede hacer referencia a cualquier carácter de teclado imprimible, un carácter del alfabeto estándar o uno de los pocos caracteres especiales en combinación con la tecla CTRL y la tecla ENTER o RETROCESO. El procedimiento de evento KeyPress() es útil al interceptar pulsaciones de teclas ingresadas en un control TextBox o ComboBox. Puede probar instantáneamente la validez de las pulsaciones de teclas o formatear los caracteres a medida que se ingresan. Cambiar el valor del parámetro keyascii cambiará los caracteres mostrados.
Puede utilizar la siguiente expresión para convertir el parámetro keyascii en un carácter:
ilustrar
Para ambos eventos, el objeto enfocado recibe todas las pulsaciones de teclas. Un formulario sólo puede ganar foco si no tiene controles visibles y válidos. Aunque los eventos KeyDown() y KeyUp() se pueden aplicar a la mayoría de las teclas, se aplican más comúnmente a: teclas de caracteres extendidos como teclas de función, teclas de navegación, teclas modificadoras de teclado y combinaciones de teclas, distinguiendo los teclados numéricos de los números normales. cuando necesite responder al presionar y soltar una tecla, puede usar los procedimientos de evento KeyDown y KeyUp.
No se puede hacer referencia a los eventos KeyDown y KeyUp en las siguientes situaciones: el formulario tiene un control CommandButton y la tecla ENTRAR cuando la propiedad predeterminada está establecida en True. El formulario tiene un control CommandButton, y cuando la propiedad Cancelar está establecida en True, la tecla ESC, TAB, KeyDown y KeyUp usan dos parámetros para interpretar las formas mayúsculas y minúsculas de cada carácter: código clave: muestra la clave física (reemplaza A y a Devuelve como la misma tecla) y Mayús: muestra el estado de la tecla Mayús+tecla y devuelve uno de A o a.
Si necesita probar el parámetro de cambio, puede usar la constante de cambio definida en el parámetro. Esta constante tiene los siguientes valores:
Descripción del valor constante
vbShiftMask 1 bit de tecla HIFT
blindaje.
VbCtrlMask 2 tecla CTRL
máscara de bits.
VbAltMask 4 bits de la tecla ALT
blindaje.
Esta constante actúa como una máscara de bits que se puede utilizar para probar cualquier combinación de teclas.
Nota: Si la propiedad KeyPreview está establecida en True, un formulario recibe este evento antes que los controles del formulario. Puede utilizar la propiedad KeyPreview para crear rutinas globales de manejo del teclado.
Con el conocimiento anterior, podemos crear un programa perfecto con teclas de método abreviado. Por ejemplo, en un programa necesitamos usar Ctrl+S para guardar, Shift para minimizar, Alt+X y ESC para salir:
Primero inicie VB y seleccione un nuevo archivo EXE, extraiga un TextBox en el formulario Form1 y establezca la propiedad KeyPreview de Form1 en True, haga doble clic en Form1, seleccione el evento KeyPress del formulario e ingrese el siguiente código: