Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6437|回复: 7

[已解决]关于VBA中窗体事件的响应

[复制链接]
发表于 2012-6-25 20:20 | 显示全部楼层 |阅读模式
是不是VBA里窗体上一旦有各种控件,KEYDOWN事件是无法响应的?
最佳答案
2012-6-26 11:12
对于一个运行中的窗体,如果该窗体或窗体上的某个控件具有焦点,则按下键时 KeyDown 事件发生。KeyDown 和 KeyPress 事件交替重复发生,直至用户释放此键,此刻 KeyUp 事件发生。这个具有焦点的窗体或控件接收所有的按键操作。只有在窗体上没有控件或所有可视控件全部失效时,窗体才可能具有焦点。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-6-25 20:33 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-6-26 00:57 | 显示全部楼层
zjdh 发表于 2012-6-25 20:33
没这样的说法,你试试就知道啦!

就是运行了没反应,哪怕是兰版的54集课件也是,但是把代码放入一个无任何控件的窗体,就会出现相应的事件代码
回复

使用道具 举报

发表于 2012-6-26 08:24 | 显示全部楼层
cloud-sj 发表于 2012-6-26 00:57
就是运行了没反应,哪怕是兰版的54集课件也是,但是把代码放入一个无任何控件的窗体,就会出现相应的事件 ...

你传个附件看看            .
回复

使用道具 举报

发表于 2012-6-26 11:12 | 显示全部楼层    本楼为最佳答案   
对于一个运行中的窗体,如果该窗体或窗体上的某个控件具有焦点,则按下键时 KeyDown 事件发生。KeyDown 和 KeyPress 事件交替重复发生,直至用户释放此键,此刻 KeyUp 事件发生。这个具有焦点的窗体或控件接收所有的按键操作。只有在窗体上没有控件或所有可视控件全部失效时,窗体才可能具有焦点。
回复

使用道具 举报

 楼主| 发表于 2012-6-26 16:33 | 显示全部楼层
吕?布 发表于 2012-6-26 11:12
对于一个运行中的窗体,如果该窗体或窗体上的某个控件具有焦点,则按下键时 KeyDown 事件发生。KeyDown 和  ...

这么说KEYDOWN是针对焦点控件的事件?是不是这样理解,如果焦点在文本框,KEYDOWN是针对文本框控件的事件,而当窗体上无控件的时候,KEYDOWN才会针对事件窗体控件响应?
回复

使用道具 举报

发表于 2012-6-27 07:35 | 显示全部楼层
cloud-sj 发表于 2012-6-26 16:33
这么说KEYDOWN是针对焦点控件的事件?是不是这样理解,如果焦点在文本框,KEYDOWN是针对文本框控件的事件 ...

我还以为这个你早就知晓了!
回复

使用道具 举报

发表于 2012-6-27 08:02 | 显示全部楼层
cloud-sj 发表于 2012-6-26 16:33
这么说KEYDOWN是针对焦点控件的事件?是不是这样理解,如果焦点在文本框,KEYDOWN是针对文本框控件的事件 ...

是这样的,对一次按键,只会有一个控件或窗体本身会响应KeyDown事件,不是逐级传递的情况:先窗体,再Frame,再Frame里的某个控件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-6 23:49 , Processed in 0.214316 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表