The Form's KeyPreview Property
To understand this property,lets look on the following example:
Start new project, and add 1 Command Button (named Command1) to
your form, verify that the Form's KeyPreview
property is set to "False".Add the following code to your
program:
Private Sub Command1_KeyPress(KeyAscii
As Integer)
Print "Button Pressed"
End Sub
Private Sub Form_KeyPress(KeyAscii
As Integer)
Print "Form Pressed"
End Sub
The code above will print "Button Pressed"
on the form when the Command Button's KeyPress event will be executed,
and print "Form Pressed" when the
Form's KeyPress event will be executed.
Run the program and press any key on the keyboard."Button Pressed"
is appearing on the form, but "Form Pressed" isn't appearing.
The Form's KeyPress event hasn't been executed.When the KeyPreview
property is "False", if any control is found on the form (the
command button in this case),It will get all the Key events (KeyPress,
KeyDown and KeyUp)instead of the form.
To allow the Form's Key events be executed, set the KeyPreview
property to "True".Lets try it. Set the KeyPreview property to
"True", run the program again and press any key.The Form's KeyPress
event has been executed,in addition to the Button's KeyPress event
that been executed too.
Notice That the form's KeyPress event executed before the Button's
event.