对窗体控件使用 KeyPress 事件
本文介绍如何对表单控件使用 KeyPress 事件。
原始产品版本: Visual FoxPro
原始 KB 编号: 140296
摘要
许多开发人员使用 ON KEY LABEL 来分配程序或程序,这些程序在按特定键时执行, (通常是) 的功能键。 但是,如果 ON KEY LABEL 分配特定于窗体中的控件,则更好的替代方法是使用该控件的 KeyPress 事件。
更多信息
KeyPress 事件可用于以下窗体控件:
CheckBox、ComboBox、CommandButton、EditBox、Form、ListBox、OptionButton、Spinner、TextBox
可以使用此事件来为按下特定键检查。 使用 KeyPress 事件执行基于函数键的操作时,应使用函数键的值,如下表所示:
Key Alone Shift Ctrl Alt
------------------------------------
F1 28 84 94 104
F2 -1 85 95 105
F3 -2 86 96 106
F4 -3 87 97 107
F5 -4 88 98 108
F6 -5 89 99 109
F7 -6 90 100 110
F8 -7 91 101 111
F9 -8 92 102 112
F10 -9 93 103 113
F11 133 135 137 139
F12 134 136 138 140
有关键值的详细信息,请参阅 INKEY()
Visual FoxPro 帮助文件中的 函数。
分步示例
以下步骤演示如何使用 KeyPress 事件。
创建窗体,并在其上放置文本框。
在
ControlSource
文本框的 属性中,键入 mykey (或你可能喜欢) 的任何其他变量。将以下代码放在文本框的 KeyPress 事件中:
LPARAMETERS nKeyCode, nShiftAltCtrl *: The previous line of code is already contained in the KeyPress event *: by default. DO CASE CASE nKeyCode = 28 WAIT WINDOW "The F1 Key has been pressed" NOWAIT mykey = "F1 Key" ThisForm.Refresh CASE nKeyCode = -4 WAIT WINDOW "The F5 Key has been pressed" NOWAIT mykey = "F5 Key" ThisForm.Refresh ENDCASE
将以下代码放在窗体的 Load 事件中:
CLEAR MACROS SET HELP OFF *: This will disable FoxPro's default function key assignments.
将以下代码放在窗体的 Destroy 事件中:
RESTORE MACROS SET HELP ON *: This will restore FoxPro's default function key assignments.
在窗体上放置命令按钮,并在其单击事件中放置以下代码:
ThisForm.Release
保存并运行窗体。 如果按 F1 或 F5 键,应显示相应的 WAIT WINDOW 消息,并更新文本框。