O N K E Y L A B E L 命 令
指定当按下特定键或组合键 或者单击鼠标按钮时所要执行的命令
语 法
ON KEY [LABEL KeyLabelNam e] [ Command ]
参 数 描 述
LABEL KeyLabelName
为 键 指 定 键 标 记 KeyLabelName 是 键 上 的 字 母 或 数 字 或 者 指 定 给 该 键 的 特殊 名 称 下 表 列 出 了 特 殊 的 键 标 记 名 称
Visual FoxPro 键 标 记 指 定 值
键 键 标 记
LEFTARROW RIGHTARROW UPARROW DNARROW
HOME HOME
END END
续 表
PAGE UP PGUP
PAGE DOWN PGDN
DEL DEL
BACKSPACE BACKSPACE
SPACEBAR SPACEBAR
INS INS
TAB TAB
SHIFT+TAB BACKTAB
ENTER ENTER
F1 to F12 F1, F2, F3 …
CTRL+F1 to CTRL+F12 CTRL+F1, CTRL+F2 … SHIFT+F1 to SHIFT+F12 SHIFT+F1, SHIFT+F2 … ALT+F1 to ALT+F12 ALT+F1, ALT+F2, ALT+F3 …
ALT+0 to ALT+9 ALT+0, ALT+1, ALT+2 …
ALT+A to ALT+Z ALT+A, ALT+B, ALT+C …
CTRL+LEFT ARROW CTRL+LEFTARROW CTRL+RIGHT ARROW CTRL+RIGHTARROW CTRL+HOME CTRL+HOME
CTRL+END CTRL+END
CTRL+PAGE UP CTRL+PGUP
续 表
CTRL+PAGE DOWN CTRL+PGDN
CTRL+A TO CTRL+Z CTRL+A, CTRL+B, CTRL+C ... CTRL+0 CTRL+0
RIGHT MOUSE BUTTON RIGHTMOUSE LEFT MOUSE BUTTON LEFTMOUSE MOUSE BUTTON MOUSE
ESC ESC
Command
指 定 当 按 下 特 定 键 或 组 合 键 或 者 单 击 鼠 标 按 钮 时 所 执 行 的 命 令
在分配给键的命令中也可以带参数或参数表达式 例如
ON KEY LABEL ALT+V WAIT WINDOW "Version: " + VERSION()
在命令中可以包含变量 但是必须是公共的 例如
PUBLIC message
message = "Default drive: " + SYS(5)
ON KEY LABEL ALT+D WAIT WINDOW message
说 明
一般来说 ON KEY LABEL 使用 DO 来执行一个过程
在 READ BROWSE EDIT CHANGE 或者用户自定义菜单的执行过程中 ON
KEY LABEL 立即执行命令 如果按键或者单击鼠标时某程序正在运行 Visual FoxPro 将执行完该程序当前行后再执行 ON KEY LABEL 命令 在程序中创建的任何ON KEY LABEL 键指定值在程序运行完毕后仍然有效 也可以在命令窗口中创建键指定值
如果要恢复指定键的动作 可以使用 ON KEY LABEL KeyLabelName 命令 如果要把全部键的行为恢复正常 应使用 ON KEY 命令
提 示 为 防 止 在 执 行 ON KEY LABEL 过 程 中 递 归 调 用 应 在 过 程 前 面 包 含
PUSH KEY CLEAR 命 令 以 禁 止 所 有 激 活 的 ON KEY LABEL 命 令 然后 在 过 程 末 尾 发 出 一 个 POP KEY 命 令 来 启 用 ON KEY LABEL 命 令
ON KEY LABEL 键指定值在 Visual FoxPro 系统菜单栏 系统菜单 对话框和警报器等处不起作用 它们只在 Visual FoxPro 系统窗口 Visual FoxPro 文本编辑器 命 令 窗口 跟踪窗口等处有效
与 ON KEY 不同 可以有多个激活的 ON KEY LABEL 命令 例如 可以为每个箭头键和鼠标按钮指派命令
注意在执行 ON KEY LABEL 时 PARAMETER S( ) 设置为 0 详细内容 请参阅稍后的 语言参考 中的 PARAMETERS( ) 函 数
Visual FoxPro 中某些事件不可被捕获 因为它们在相应窗口的控制之下 特 别 的 当单击一个控制菜单或滚动条之类的窗口控制时 不执行 ON KEY LABEL MOUSE
ON KEY LABEL LEFTMOUSE 和 ON KEY LABEL RIGHTMOUSE 还要注意在
Visual FoxPro 中 ON KEY LABEL 支持 CTRL+0 它将该组合键重定义为向字段中输入空值
附注 ON KEY LABEL 的操作范围在表单之外 可以使用表单的 KeyPress 事件 当按下一个键时执行代码
示 例
下面的示例在按下箭头键时 显示信息
CLEAR
PUBLIC msg
msg = CHR(13) + CHR(13) + "Press F9 to " + ;
restore default key definition."
ON KEY LABEL RIGHTARROW Wait Window "Right Arrow " + msg NOWAIT ON KEY LABEL LEFTARROW Wait Window "Left Arrow " + msg NOWAIT ON KEY LABEL UPARROW Wait Window "Up Arrow " + msg NOWAIT
ON KEY LABEL DNARROW Wait Window "Down Arrow " + msg NOWAIT
- Press F9 to clear the ON KEY LABEL assignments
ON KEY LABEL F9 ON KEY
请 参 阅
INKEY ( ) , KeyPress 事 件 , ON( ), POP KEY, PUSH KEY