O N K E Y L A B E L 命 令

O N K E Y L A B E L 命 令 - 图1O N K E Y L A B E L 命 令 - 图2指定当按下特定键或组合键 或者单击鼠标按钮时所要执行的命令

语 法

ON KEY [LABEL KeyLabelNam e] [ Command ]

参 数 描 述

LABEL KeyLabelName

O N K E Y L A B E L 命 令 - 图3O N K E Y L A B E L 命 令 - 图4O N K E Y L A B E L 命 令 - 图5为 键 指 定 键 标 记 KeyLabelName 是 键 上 的 字 母 或 数 字 或 者 指 定 给 该 键 的 特殊 名 称 下 表 列 出 了 特 殊 的 键 标 记 名 称

O N K E Y L A B E L 命 令 - 图6Visual FoxPro 键 标 记 指 定 值

O N K E Y L A B E L 命 令 - 图7O N K E Y L A B E L 命 令 - 图8键 键 标 记

LEFTARROW RIGHTARROW UPARROW DNARROW

O N K E Y L A B E L 命 令 - 图9O N K E Y L A B E L 命 令 - 图10HOME 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

O N K E Y L A B E L 命 令 - 图11指 定 当 按 下 特 定 键 或 组 合 键 或 者 单 击 鼠 标 按 钮 时 所 执 行 的 命 令

O N K E Y L A B E L 命 令 - 图12O N K E Y L A B E L 命 令 - 图13在分配给键的命令中也可以带参数或参数表达式 例如

ON KEY LABEL ALT+V WAIT WINDOW "Version: " + VERSION()

O N K E Y L A B E L 命 令 - 图14O N K E Y L A B E L 命 令 - 图15O N K E Y L A B E L 命 令 - 图16在命令中可以包含变量 但是必须是公共的 例如

PUBLIC message

message = "Default drive: " + SYS(5)

ON KEY LABEL ALT+D WAIT WINDOW message

说 明

O N K E Y L A B E L 命 令 - 图17O N K E Y L A B E L 命 令 - 图18一般来说 ON KEY LABEL 使用 DO 来执行一个过程

O N K E Y L A B E L 命 令 - 图19O N K E Y L A B E L 命 令 - 图20O N K E Y L A B E L 命 令 - 图21O N K E Y L A B E L 命 令 - 图22在 READ BROWSE EDIT CHANGE 或者用户自定义菜单的执行过程中 ON

O N K E Y L A B E L 命 令 - 图23O N K E Y L A B E L 命 令 - 图24O N K E Y L A B E L 命 令 - 图25O N K E Y L A B E L 命 令 - 图26O N K E Y L A B E L 命 令 - 图27KEY LABEL 立即执行命令 如果按键或者单击鼠标时某程序正在运行 Visual FoxPro 将执行完该程序当前行后再执行 ON KEY LABEL 命令 在程序中创建的任何ON KEY LABEL 键指定值在程序运行完毕后仍然有效 也可以在命令窗口中创建键指定值

O N K E Y L A B E L 命 令 - 图28O N K E Y L A B E L 命 令 - 图29O N K E Y L A B E L 命 令 - 图30O N K E Y L A B E L 命 令 - 图31如果要恢复指定键的动作 可以使用 ON KEY LABEL KeyLabelName 命令 如果要把全部键的行为恢复正常 应使用 ON KEY 命令

O N K E Y L A B E L 命 令 - 图32提 示 为 防 止 在 执 行 ON KEY LABEL 过 程 中 递 归 调 用 应 在 过 程 前 面 包 含

O N K E Y L A B E L 命 令 - 图33O N K E Y L A B E L 命 令 - 图34PUSH KEY CLEAR 命 令 以 禁 止 所 有 激 活 的 ON KEY LABEL 命 令 然后 在 过 程 末 尾 发 出 一 个 POP KEY 命 令 来 启 用 ON KEY LABEL 命 令

O N K E Y L A B E L 命 令 - 图35O N K E Y L A B E L 命 令 - 图36O N K E Y L A B E L 命 令 - 图37O N K E Y L A B E L 命 令 - 图38O N K E Y L A B E L 命 令 - 图39O N K E Y L A B E L 命 令 - 图40O N K E Y L A B E L 命 令 - 图41ON KEY LABEL 键指定值在 Visual FoxPro 系统菜单栏 系统菜单 对话框和警报器等处不起作用 它们只在 Visual FoxPro 系统窗口 Visual FoxPro 文本编辑器 命 令 窗口 跟踪窗口等处有效

O N K E Y L A B E L 命 令 - 图42O N K E Y L A B E L 命 令 - 图43O N K E Y L A B E L 命 令 - 图44O N K E Y L A B E L 命 令 - 图45与 ON KEY 不同 可以有多个激活的 ON KEY LABEL 命令 例如 可以为每个箭头键和鼠标按钮指派命令

O N K E Y L A B E L 命 令 - 图46O N K E Y L A B E L 命 令 - 图47O N K E Y L A B E L 命 令 - 图48O N K E Y L A B E L 命 令 - 图49O N K E Y L A B E L 命 令 - 图50O N K E Y L A B E L 命 令 - 图51注意在执行 ON KEY LABEL 时 PARAMETER S( ) 设置为 0 详细内容 请参阅稍后的 语言参考 中的 PARAMETERS( ) 函 数

O N K E Y L A B E L 命 令 - 图52O N K E Y L A B E L 命 令 - 图53O N K E Y L A B E L 命 令 - 图54O N K E Y L A B E L 命 令 - 图55O N K E Y L A B E L 命 令 - 图56Visual FoxPro 中某些事件不可被捕获 因为它们在相应窗口的控制之下 特 别 的 当单击一个控制菜单或滚动条之类的窗口控制时 不执行 ON KEY LABEL MOUSE

O N K E Y L A B E L 命 令 - 图57ON KEY LABEL LEFTMOUSE 和 ON KEY LABEL RIGHTMOUSE 还要注意在

O N K E Y L A B E L 命 令 - 图58O N K E Y L A B E L 命 令 - 图59O N K E Y L A B E L 命 令 - 图60Visual FoxPro 中 ON KEY LABEL 支持 CTRL+0 它将该组合键重定义为向字段中输入空值

O N K E Y L A B E L 命 令 - 图61O N K E Y L A B E L 命 令 - 图62O N K E Y L A B E L 命 令 - 图63附注 ON KEY LABEL 的操作范围在表单之外 可以使用表单的 KeyPress 事件 当按下一个键时执行代码

示 例

O N K E Y L A B E L 命 令 - 图64O N K E Y L A B E L 命 令 - 图65下面的示例在按下箭头键时 显示信息

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