明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1989|回复: 6

VBA中很奇怪的一件事情。

[复制链接]
发表于 2003-10-9 13:30:00 | 显示全部楼层 |阅读模式
在VBA中,在窗体上建 个文本框,如何按enter键实现自动输入后自动清空,进行下一个输入?


Private Sub TextBOX1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
   .......在这里写代码就行了
End If
End Sub

利用key_press 和KEY_UP事件时,不会响应回车事件。呵呵。

只有在KEY-DOWN时才响应回车事件!请大侠论证一下,是不是如此??
发表于 2003-10-9 13:44:00 | 显示全部楼层
回车键只有在按下KeyDown和弹起KeyUp两个事件中才能捕捉到。KeyPress与它们的区别是它不能捕捉控制键,比如回车键、TAB键等。
弹起KeyUp事件没反应,可能是在其中处理改变了KeyCode的值。比如将它设置为零。那么就相当于过滤了这个键值。
 楼主| 发表于 2003-10-9 14:06:00 | 显示全部楼层
但是在VB中是完全可以捕捉到的。
另外,你有尝试一下吗?
就写这一句:
MSGBOX KEYCODE
呵呵。
发表于 2003-10-9 14:40:00 | 显示全部楼层
不错,是这样,在VBA中包括OfficeVBA都是这样,这一点上与VB确实有区别.
发表于 2003-10-9 18:51:00 | 显示全部楼层
帮助文件中的说明:


  1. KeyPress 事件发生在下列任意键被按下时:

  2. 任何可打印的键盘字符。


  3. Ctrl 键与标准字母表中字符的组合。


  4. Ctrl 键与任何特殊字符的组合。


  5. Backspace 键。


  6. Esc 键。
  7. 在下面情况下,KeyPress 事件不发生:

  8. 按下 Tab 键。


  9. 按下 Enter 键。


  10. 按任何箭头键。


  11. 引起焦点在控件之间移动的键击操作。
复制代码


  1. KeyDown 和 KeyUp 事件通常用于识别或区分以下各键:

  2. 扩充的字符键,比如功能键。


  3. 翻阅键,如 Home、End、PageUp、PageDown、向上、向下、向右、向左和 Tab 键。


  4. 组合键和标准键盘组合键 (Shift、Ctrl 或 Alt 键)。


  5. 数字键区和键盘数字键。
  6. 在下列情况下,KeyDown 和 KeyUp 事件不发生:

  7. 在带有命令按钮(其 Default 属性为 True )的窗体上按 Enter 键。


  8. 在带有命令按钮(其 Cancel 属性为 True)的窗体上按 Esc 键。
复制代码
发表于 2003-10-9 19:39:00 | 显示全部楼层
VB中是这样定义的:
--------------------------------------------------------------------------
KeyDown 和 KeyUp 事件

KeyUp 和 KeyDown 事件报告键盘本身准确的物理状态:按下键 (KeyDown) 及松开键 (KeyUp)。与此成对照的是,KeyPress 事件并不直接地报告键盘状态─ 它只提供键所代表的字符而不识别键的按下或松开状态。

进一步举例将有助于阐明这一差别。输入大写 "A" 时,KeyDown 事件获得 "A" 的 ASCII 码。在输入小写 "a" 时,KeyDown 事件获得相同的 ASCII 代码。为区分大小写,这些事件使用 shift 参数。与此相对照的是,KeyPress 事件将字母的大小写作为两个不同的 ASCII 字符处理。
-----------------------------------------------------------------------------
KeyPress 事件


在按下与 ASCII 字符对应的键时将触发 KeyPress 事件。ASCII 字符集不仅代表标准键盘的字母、数字和标点符号,而且也代表大多数控制键。但是 KeyPress 事件只识别 ENTER、TAB 和 BACKSPACE 键。KeyDown 和 KeyUp 事件能够检测其它功能键、编辑键和定位键
---------------------------------------------------------------------------
可见,在VB中的KeyPress事件可以检测到ENTER、TAB 和 BACKSPACE 键.这与实际测试结果相同.
发表于 2003-10-9 22:49:00 | 显示全部楼层
自动输入后自动清空,你可以设置一个按钮,把它的Default属性设置为True。在它的点击事件中写入你所要的操作,这样在文本框中按回车就可以执行该按钮中的内容了。
我想这样会合理一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 12:50 , Processed in 0.187527 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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