You can use the KeyPreview property to specify whether the form-level keyboard event procedures are invoked before a control's keyboard event procedures.
Note The keyboard events are KeyDown, KeyUp, and KeyPress.
Setting
The KeyPreview property uses the following settings.
Setting | Visual Basic | Description |
---|---|---|
Yes | True (–1) | The form receives keyboard events first, then the active control receives keyboard events. |
No | False (0) | (Default) Only the active control receives keyboard events. |
You can set the KeyPreview property by using the form's property sheet, a macro, or Visual Basic.
You can set the KeyPreview property in any view.
Remarks
You can use the KeyPreview property to create a keyboard-handling procedure for a form. 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.
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.
If a form has no visible or enabled controls, it automatically receives all keyboard events.