对窗体控件使用 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 事件。

  1. 创建窗体,并在其上放置文本框。

  2. ControlSource 文本框的 属性中,键入 mykey (或你可能喜欢) 的任何其他变量。

  3. 将以下代码放在文本框的 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
    
  4. 将以下代码放在窗体的 Load 事件中:

    CLEAR MACROS
    SET HELP OFF
    *: This will disable FoxPro's default function key assignments.
    
  5. 将以下代码放在窗体的 Destroy 事件中:

    RESTORE MACROS
    SET HELP ON
    *: This will restore FoxPro's default function key assignments.
    
  6. 在窗体上放置命令按钮,并在其单击事件中放置以下代码:

    ThisForm.Release
    
  7. 保存并运行窗体。 如果按 F1 或 F5 键,应显示相应的 WAIT WINDOW 消息,并更新文本框。