Description
Occurs when the user presses a key.
Event ID
Event ID |
Objects |
---|---|
pbm_lvnkeydown |
ListView |
pbm_renkey |
RichTextEdit |
pbm_tcnkeydown |
Tab |
pbm_tvnkeydown |
TreeView |
pbm_keydown |
Window |
Arguments
Argument |
Description |
---|---|
key |
KeyCode by value. A value of the KeyCode enumerated datatype indicating the key that was pressed (for example, KeyA! or KeyF1!). |
keyflags |
UnsignedLong by value (the modifier keys that were pressed with the key). Values are: 1 Shift key 2 Ctrl key 3 Shift and Ctrl keys |
Return Values
Long.
Return code choices (specify in a RETURN statement):
0 -- Continue processing
1 -- Do not process the key (RichTextEdit controls only)
Usage
Some PowerBuilder controls capture keystrokes so that the window is prevented from getting a Key event. These include ListView, TreeView, Tab, RichTextEdit, and the DataWindow edit control. When these controls have focus you can respond to keystrokes by writing a script for an event for the control. If there is no predefined event for keystrokes, you can define a user event and associate it with a pbm code.
For a RichTextEdit control, pressing a key can perform document formatting. For example, Ctrl+b applies bold formatting to the selection. If you specify a return value of 1, the document formatting associated with the key will not be performed.
If the user presses a modifier key and holds it down while pressing another key, the Key event occurs twice: once when the modifier key is pressed and again when the second key is pressed. If the user releases the modifier key before pressing the second key, the value of keyflags will change in the second occurrence.
When the user releases a key, the Key event does not occur. Therefore, if the user releases a modifier key, you do not know the current state of the modifier keys until another key is pressed.
Examples
This example causes a beep when the user presses F1 or F2, as long as Shift and Ctrl are not pressed:
IF keyflags = 0 THEN IF key = KeyF1! THEN Beep(1) ELSEIF key = KeyF2! THEN Beep(20) END IF END IF
This line displays the value of keyflags when a key is pressed.
st_1.Text = String(keyflags)
See also