对窗体控件使用 KeyPress 事件

本文介绍如何对窗体控件使用 KeyPress 事件。

原始产品版本:   Visual FoxPro
原始 KB 数:   140296

摘要

许多开发人员使用关键标签在程序中分配要在按特定键时执行的程序或过程, (通常是) 的功能键。 但是,如果键标签分配特定于表单中的控件,则更好的方法是使用该控件的 KeyPress 事件。

更多信息

KeyPress 事件适用于以下表单控件:

CheckBox、ComboBox、命令按钮、EditBox、Form、ListBox、选项按钮、微调框、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. 将以下代码放在表单的销毁事件中:

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

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