CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

请教VB中的键盘事件!

楼主ldxm8848(*梦幻女孩*)2004-09-04 00:47:26 在 VB / 基础类 提问

各位好:  
          请教各位,  
  1、KeyPress和KeyDown|KeyUp事件有什么不同?  
  2、KeyCode和KeyAscii参数又有什么不同?  
  我初学VB。  
  小妹愚钝,还望各位多指教!  
  谢谢! 问题点数:0、回复次数:10Top

1 楼BlueBeer(1win)回复于 2004-09-04 02:33:19 得分 0

建议你装个MSDNTop

2 楼BlueBeer(1win)回复于 2004-09-04 02:33:33 得分 0

KeyPress   事件  
               
   
  此事件当用户按下和松开一个   ANSI   键时发生。  
   
  语法  
   
  Private   Sub   Form_KeyPress(keyascii   As   Integer)  
   
  Private   Sub   object_KeyPress([index   As   Integer,]keyascii   As   Integer)  
   
  KeyPress   事件语法包含下列部分:  
   
  部分   描述    
  object   一个对象表达式,其值是“应用于”列表中的一个对象。    
  index   一个整数,它用来唯一标识一个在控件数组中的控件。    
  keyascii   是返回一个标准数字   ANSI   键代码的整数。Keyascii   通过引用传递,对它进行改变可给对象发送一个不同的字符。将   keyascii   改变为   0   时可取消击键,这样一来对象便接收不到字符。    
   
   
  说明  
   
  具有焦点的对象接收该事件。一个窗体仅在它没有可视和有效的控件或   KeyPreview   属性被设置为   True   时才能接收该事件。一个   KeyPress   事件可以引用任何可打印的键盘字符,一个来自标准字母表的字符或少数几个特殊字符之一的字符与   CTRL   键的组合,以及   ENTER   或   BACKSPACE   键。KeyPress   事件过程在截取   TextBox   或   ComboBox   控件所输入的击键时是非常有用的。它可立即测试击键的有效性或在字符输入时对其进行格式处理。改变   keyascii   参数的值会改变所显示的字符。  
   
  可使用下列表达式将   keyascii   参数转变为一个字符:  
   
  Chr(KeyAscii)  
   
  然后执行字符串操作,并将该字符反译成一个控件可通过该表达式解释的   ANSI   数字:  
   
  KeyAscii   =   Asc(char)  
   
  应当使用   KeyDown   和   KeyUP   事件过程来处理任何不被   KeyPress   识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与   KeyDown   和   KeyUp   事件不同的是,KeyPress   不显示键盘的物理状态,而只是传递一个字符。  
   
  KeyPress   将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而   KeyDown   和   KeyUp   用两种参数解释每个字符的大写形式和小写形式:keycode   —   显示物理的键(将   A   和   a   作为同一个键返回)和   shift   —指示   shift   +   key   键的状态而且返回   A   或   a   其中之一。  
   
  如果   KeyPreview   属性被设置为   True,窗体将先于该窗体上的控件接收此事件。可用   KeyPreview   属性来创建全局键盘处理例程。  
   
  注意...CTRL+@   的键盘组合的   ANSI   编号是   0。因为   Visual   Basic   将一个零值的   keyascii   识别为一个长度为零的字符串   (""),在应用程序中应避免使用   CTRL+@   的组合。  
  Top

3 楼BlueBeer(1win)回复于 2004-09-04 02:33:47 得分 0

 
  KeyDown、KeyUp   事件  
               
   
  这些事件是当一个对象具有焦点时按下   (   KeyDown   )   或松开   (   KeyUp   )   一个键时发生的。(要解释   ANSI   字符,应使用   KeyPress   事件。)  
   
  语法  
   
  Private   Sub   Form_KeyDown(keycode   As   Integer,   shift   As   Integer)  
   
  Private   Sub   object_KeyDown([index   As   Integer,]keycode   As   Integer,   shift   As   Integer)  
   
  Private   Sub   Form_KeyUp(keycode   As   Integer,   shift   As   Integer)  
   
  Private   Sub   object_KeyUp([index   As   Integer,]keycode   As   Integer,   shift   As   Integer)  
   
  KeyDown   和   KeyUp   事件包括下列部分:  
   
  部分   描述    
  object   一个对象表达式,其值是“应用于”列表中的一个对象。    
  index   是一个整数,它用来唯一标识一个在控件数组中的控件。    
  keycode   是一个键代码,诸如   vbKeyF1   (   F1   键)或   vbKeyHome   (   HOME   键)。要指定键代码,可使用对象浏览器中的   Visual   Basic   (   VB   )   对象库中的常数。    
  shift   是在该事件发生时响应   SHIFT   ,CTRL   和   ALT   键的状态的一个整数。shift   参数是一个位域,它用最少的位响应   SHIFT   键(位   0   )、CTRL   键(位   1   )和   ALT   键(位   2   )。这些位分别对应于值   1、2   和   4。可通过对一些、所有或无位的设置来指明有一些、所有或零个键被按下。例如,如果   CTRL   和   ALT   这两个键都被按下,则   shift   的值为   6。    
   
   
  说明  
   
  对于这两个事件来说,带焦点的对象都接收所有击键。一个窗体只有在不具有可视的和有效的控件时才可以获得焦点。虽然   KeyDown   和   KeyUp   事件可应用于大多数键,它们最经常地还是应用于:    
   
  扩展的字符键如功能键等。  
   
   
  定位键。  
   
   
  键盘修饰键和按键的组合。  
   
   
  区别数字小键盘和常规数字键。    
  在需要对按下和松开一个键都响应时,可使用   KeyDown   和   KeyUp   事件过程。  
   
  下列情况不能引用   KeyDown   和   KeyUp   事件:    
   
  窗体有一个   CommandButton   控件,并且   Default   属性设置为   True   时的   ENTER   键。  
   
   
  窗体有一个   CommandButton   控件,并且   Cancel   属性设置为   True   时的   ESC   键。  
   
   
  TAB   键。    
  KeyDown   和   KeyUp   用两种参数解释每个字符的大写形式和小写形式:keycode   —显示物理的键(将   A   和   a   作为同一个键返回)和   shift   —显示   shift   +   key   键的状态而且返回   A   或   a   其中之一。  
   
  如果需要测试   shift   参数,可使用该参数中定义各位的   shift   常数。该常数有下列值:  
   
  常数   值   描述    
  vbShiftMask   1   SHIFT   键的位屏蔽。    
  VbCtrlMask   2   CTRL   键的位屏蔽。    
  VbAltMask   4   ALT   键的位屏蔽。    
   
   
  该常数用作位屏蔽。它可被用来测试任何键组合。  
   
  测试一个条件时,首先将每个结果分配给一个临时整数变量,然后将   shift   与一个位屏蔽进行对比。如下例,可用   And   运算符和   shift   参数一起来测试条件是否大于   0。该条件说明该修正键被按下:  
   
  ShiftDown   =   (Shift   And   vbShiftMask)   >   0  
   
  可按此例在一个过程中测试任何条件的组合:  
   
  If   ShiftDown   And   CtrlDown   Then  
   
  注意   如果   KeyPreview   属性被设置为   True,则一个窗体先于该窗体上的控件接收到此事件。可用   KeyPreview   属性来创建全局键盘处理例程。  
  Top

4 楼JKGF(排除万难,去争取胜利 ^_^)回复于 2004-09-04 02:40:47 得分 0

keypress用来接收字母大键盘数字   而   keydown和keyup可以识别其他不被KeyPress识别的键         A-Z,大键盘0-9既是keycode又是keyascii   其它键只有单独定义的keycode      
  DOWN和UP   顾名思义就是按下和放开时引发事件   具体用的时候没什么差别Top

5 楼xanger(do while MYM<400000)回复于 2004-09-04 04:37:14 得分 0

呵呵  
  说这么全我不就没分了吗?Top

6 楼renjunjun(飞黄)回复于 2004-09-04 04:41:44 得分 0

嘿嘿  
  来这么迟不是比楼上还惨?Top

7 楼iStar64(iStar_64)回复于 2004-09-04 18:25:28 得分 0

讲解这么全,我还有机会得分吗?Top

8 楼iStar64(iStar_64)回复于 2004-09-04 18:25:52 得分 0

要不我给你msdn,你给我分!  
  Top

9 楼51365133(渊海)回复于 2004-09-04 18:37:14 得分 0

咳,这个呀你要是学vb就加我吧。       51365133  
  也不知道给分不?加我包准你不后悔!Top

10 楼renjunjun(飞黄)回复于 2004-09-04 18:39:08 得分 0

新版追女仔?Top

相关问题

  • vb 键盘事件求教
  • VB中接受键盘事件(主要就是回车键)
  • 怎样用计算机键盘实现鼠标触击事件啊?在VB中
  • 键盘事件?
  • 谁可以在vb中使用全局钩子?处理键盘和鼠标事件
  • JPanel中如何捕获键盘事件?
  • 寻找VB中的键盘ASSIC码。
  • vb中如何使用软键盘
  • DELPHI键盘事件
  • 如何在ListCtrl中响应的键盘事件中得到键盘码

关键词

  • 字符
  • 控件
  • 键盘
  • 屏蔽
  • 属性
  • 组合
  • 代码
  • 语法
  • 测试
  • 键

得分解答快速导航

  • 帖主:ldxm8848

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo