菜鸟问题,请帮我

xuewei 2001-12-18 05:02:26
当按下键盘的任一键时,keypress,keydown,keeyup激发的顺序是什么?
...全文
104 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihonggen0 2001-12-18
  • 打赏
  • 举报
回复
Visual Basic 提供三种事件,而且窗体和接受键盘输入的控件都识别这三种事件。下表对这些事件都作了描述。

键盘事件 触发原因
KeyPress 按下对应某 ASCII 字符的键
KeyDown 按下键盘的任意键
KeyUp 释放键盘的任意键


只有获得焦点的对象才能够接受键盘事件。对于键盘事件,只有当窗体为活动窗体且其上所有控件均未获得焦点时,窗体才获得焦点。这种情况只有在空窗体和窗体上的控件都无效时才发生。但是,如果将窗体上的 KeyPreview 属性设置为 True,则对每个控件在控件识别其所有键盘事件之前,窗体就会接受这些键盘事件。当您希望无论何时按下某按键都会执行同一个操作,而不管哪个控件在此时具有焦点时,这样设置 KeyPreview 属性极为有用。

KeyDown 和 KeyUp 事件提供了最低级的键盘响应。例如,可用这些事件检测 KeyPress 事件无法检测到的情况:

SHIFT、CTRL 和 ALT 键的特殊组合。


箭头键。注意,某些控件(命令按钮、选项按钮和复选框)不接受箭头键事件:相反,按下箭头键后将使焦点移动到另一个控件。


PAGEUP 和 PAGEDOWN。


区分数值小键盘的数字键与打字键盘的数值键。


不仅响应按键操作而且响应释放键的操作(KeyPress 只响应按键操作)。


与菜单命令无联系的功能键。
keyboard 事件彼此并不相互排斥。按下一键时将生成 KeyDown 和 KeyPress 事件,而松开此键后生成 KeyUp 事件。当用户按下一个 KeyPress 不能检测的键时将触发 KeyDown 事件,而松开此键后时生成 KeyUp 事件。

使用 KeyUp 和 KeyDown 事件之前要确保 KeyPress 事件的功能不够使用。KeyPress 事件检测的键对应于所有标准 ASCII 字符:ENTER、TAB、BACKSPACE 键以及标准键盘的字母、数字和标点符号键。通常,编写 KeyPress 事件的代码比较容易。

还应考虑使用快捷键和访问键,“窗体、控件和菜单”一章中的“菜单基础”一节对此进行说明。快捷键必须与菜单命令相联系,但它们可包括功能键(包括某些功能键与 shift 键的组合)。分配快捷键时无需编写附加的代码。

注意 Windows ANSI 字符集对应 256 个字符,包括标准拉丁字母、出版符(例如版权标志、em 虚线和省略号)以及许多替换字符和重音符号字符。这些字符由唯一的一字节数值 (0-255) 表示。ASCII 本质上是 ANSI 字符集的一个子集 (0-127),代表标准键盘上的标准字母、数字和标点符号。在提及这两种字符集时可将它们互换。
Ranma_True 2001-12-18
  • 打赏
  • 举报
回复
down,press,up
kouke 2001-12-18
  • 打赏
  • 举报
回复
keydown,keypress,keyup
但keypress不能激活全部的键盘
相关推荐
发帖
VB基础类

7681

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2001-12-18 05:02
社区公告
暂无公告