Propiedad Form. KeyPreview (Access)Form.KeyPreview property (Access)

Puede utilizar la propiedad KeyPreview para especificar si se llama a los procedimientos de evento del teclado en el nivel de formulario antes de llamar a los procedimientos de evento del teclado de un control.You can use the KeyPreview property to specify whether the form-level keyboard event procedures are invoked before a control's keyboard event procedures. Boolean de lectura y escritura.Read/write Boolean.

SintaxisSyntax

expresión. KeyPreviewexpression.KeyPreview

expresión Variable que representa un objeto Form.expression A variable that represents a Form object.

ComentariosRemarks

La propiedad KeyPreview puede tener los valores siguientes.The KeyPreview property uses the following settings.

ConfiguraciónSetting Visual BasicVisual Basic DescripciónDescription
Yes TrueTrue El formulario recibe primero los eventos del teclado y, a continuación, el control activo recibe los eventos del teclado.The form receives keyboard events first, and then the active control receives keyboard events.
NoNo FalseFalse (Valor predeterminado) Sólo el control activo recibe los eventos del teclado.(Default) Only the active control receives keyboard events.

Puede establecer la propiedad KeyPreview en cualquier vista.You can set the KeyPreview property in any view.

Puede utilizar la propiedad KeyPreview para crear un procedimiento de control de teclado para un formulario.You can use the KeyPreview property to create a keyboard-handling procedure for a form. Por ejemplo, cuando una aplicación utiliza las teclas de función, el establecimiento de la propiedad KeyPreview en True permite procesar pulsaciones de teclas en el nivel de formulario en lugar de escribir código para cada control que pueda recibir eventos de pulsaciones de teclas.For example, when an application uses function keys, setting the KeyPreview property to True allows you to process keystrokes at the form level rather than writing code for each control that might receive keystroke events.

Para controlar eventos del teclado sólo en el nivel del formulario e impedir que los controles reciban eventos del teclado, establezca el argumento KeyAscii en 0 en el procedimiento de evento KeyPress del formulario y establezca el argumento KeyCode en 0 en los procedimientos de evento KeyDown y KeyUp del formulario.To handle keyboard events only at the form level and prevent controls from receiving keyboard events, set the KeyAscii argument to 0 in the form's KeyPress event procedure, and set the KeyCode argument to 0 in the form's KeyDown and KeyUp event procedures.

Si un formulario no tiene ningún control visible o activado, recibe automáticamente todos los eventos del teclado.If a form has no visible or enabled controls, it automatically receives all keyboard events.

EjemploExample

En el ejemplo siguiente, la propiedad KeyPreview está establecida en True en el procedimiento de evento Load del formulario.In the following example, the KeyPreview property is set to True in the form's Load event procedure. Esto hace que el formulario reciba eventos del teclado antes de que sean recibidos por un control.This causes the form to receive keyboard events before they are received by any control. El evento KeyDown del formulario comprueba entonces el valor del argumento KeyCode para determinar si se presionaron las teclas F2, F3 o F4.The form KeyDown event then checks the KeyCode argument value to determine if the F2, F3, or F4 keys were pushed.

Private Sub Form_Load() 
 Me.KeyPreview = True 
End Sub 
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 
 Select Case KeyCode 
 Case vbKeyF2 
 ' Process F2 key events. 
 Case vbKeyF3 
 ' Process F3 key events. 
 Case vbKeyF4 
 ' Process F4 key events. 
 Case Else 
 End Select 
End Sub

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.