为何文本框的keypress事件中,有的键触发(如退格键),有的键就不触发呢(如删除键del)?

kanzm2 2009-08-23 10:33:32
为何文本框的keypress事件中,有的键触发(如退格键),有的键就不触发呢(如删除键del)?
-------------------------------------------
很多键触发keypress事件,如a,b,c,等可见字符,
但是一些不可见字符,也是触发keypress的,比如退格键,回车键等。
但是有一些按键,却不触发keypress,比如光标键,删除键,我不知为何会有这种区别。

退格键,与删除键,都是相同类型的键呀?为何前者触发,后者就不触发呢?
本质上,哪种类型的按键,会触发keypress事件呢?
...全文
869 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
神马都能聊 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzyong00 的回复:]
用keydown keyup事件
[/Quote]
这个是重点,MSDN有说keydown、keyup是处理低级键盘事件的方法。
yachong 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bestbadgod 的回复:]
恩,有点感觉。。
算了,不说了。。
[/Quote]
呵呵
倒大霉的上帝 2009-08-24
  • 打赏
  • 举报
回复
恩,有点感觉。。
算了,不说了。。
hui_hui_2007 2009-08-24
  • 打赏
  • 举报
回复
并不是所有键都触发keypress事件的,只有具有ascii码的字符,才会触发keypress事件的。
yachong 2009-08-24
  • 打赏
  • 举报
回复
看MSDN,说得很清楚:

在按下与 ASCII 字符对应的键时将触发 KeyPress 事件。ASCII 字符集不仅代表标准键盘的字母、数字和标点符号,而且也代表大多数控制键。但是 KeyPress 事件只识别 ENTER、TAB 和 BACKSPACE 键。KeyDown 和 KeyUp 事件能够检测其它功能键、编辑键和定位键。

kanzm2 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzyong00 的回复:]
用keydown keyup事件
[/Quote]
这个我当然知道,我问的是为何不会触发keypress事件,
你的回答是所答非所问:
我问你:吃完饭了吗?
你告我:刚洗完脚。
cqq_chen 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzyong00 的回复:]
用keydown keyup事件
[/Quote]
...,重点
r040bk20032030 2009-08-24
  • 打赏
  • 举报
回复
还有一个前提,KeyDown触发事件的控件或窗口要被选中(有焦点)才行,如果未被选中的话,也是不会触发的。
kanzm2 2009-08-23
  • 打赏
  • 举报
回复
个人认为,其实每个键都触发了相应的事件,只是你的文本框没有表现出相应的现象而已。
=============================================================
你可以这样试一下:
你看看光标键是否会触发,ok?
Private Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print KeyAscii
MsgBox KeyAscii
End Sub
zzyong00 2009-08-23
  • 打赏
  • 举报
回复
用keydown keyup事件
贝隆 2009-08-23
  • 打赏
  • 举报
回复
个人认为,其实每个键都触发了相应的事件,只是你的文本框没有表现出相应的现象而已。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧