键盘与鼠标操作.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
键盘与鼠标操作.doc

第八章 键盘与鼠标操作 (2w) 程序在运行过程中,经常需要知道用户对键盘和鼠标的具体操作,例如用户按下键盘上的“A”键时是想输入字符“A”还是输入“a”呢,当用户利用鼠标选中“删除”时是想彻底删除还是想放入回收站呢等等,以便于根据不同的情况,执行不同的具体操作。为此Visual Basic专门定义了和键盘与鼠标有关的事件和方法。 8-1键盘操作 当我们敲击一下键盘上的某个按键时,将会先后触发对应对象的KeyDown、KeyPress、(对于文本框之类的对象还会触发Change)、KeyUp等一系列事件。根据不同的具体应用,我们可以选择不同的事件进行编程。 需要说明的是,对键盘的某个按键进行操作时,触发的是目前具有输入焦点(Focus)对象的事件。一般情况下窗体对象不响应这些事件,除非满足下面几个条件: 目前窗体上没有添加任何对象,则窗体接收键盘事件。 目前窗体上有对象,但是它们属于下面两种情况: 这类对象不具有接收焦点的能力,例如:标签、框架、形状(Shape)、Timer、Image等等 这类对象本来可以接收焦点(例如:文本框),但目前处于Disabled状态。 窗体的KeyPreview属性为True。所谓KeyPreview的属性为True,就是说无论在窗体内的什么控件内利用键盘输入,都需要事先经过窗体进行检查。 其中,前两种情况下只触发窗体的KeyDown、KeyPress、KeyUp事件,第三种情况下将先后触发窗体的KeyDown、控件的KeyDown、窗体的KeyPress、控件的KeyPress、窗体的KeyUp、控件的KeyUp事件。 8-1-1 KeyPress事件 KeyPress事件过程的的形式有两种: Private Sub 对象名_KeyPress(KeyAscii As Integer) 用于非控件数组 Private Sub 对象名_KeyPress(Index As Integer, KeyAscii As Integer) 用于控件数组 其中:KeyAscii的值在本过程中由系统自动提供,就是用户输入字符的ASCII值。 例如:正常情况下我们按下键盘上的“A”键,则KeyAscii的值为97,表示用户想输入字符“a”;当Caps Lock键锁定为大写或同时按下Shift键时,KeyAscii的值为65,表示用户想输入字符“A”。 说明: 并不是按下键盘上的任意一个键都会引发KeyPress事件,只有那些会产生ASCII的按键(例如:数字键、大小写字母键、回车、空格等)才会触发KeyPress事件。对于那些不能产生ASCII的按键(例如:方向键←↑→↓)则不会触发KeyPress事件。 因为KeyPress事件在Change事件之前触发,因此如果在KeyPress事件中改变了KeyAscii的值,那么在控件中回显的字符将是改变后的结果。例如下面代码的功能就是无论输入的是大写还是小写,在Text1内都强制显示为小写字母: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 65 And KeyAscii = 90 Then KeyAscii = KeyAscii + 32 End If End Sub 当窗体的KeyPreview属性为True时,在窗体的KeyPress事件里如果改变了KeyAscii的值,那么控件的KeyPress事件里的KeyAscii的值也会跟着改变,当然回显的字符也就被改变了。例如下面的代码就是强制用户在成绩录入窗体里只能输入数值,如果输入非数值字符则鸣笛报错,如图8-1所示: Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii 48 Or KeyAscii 57 Then KeyAscii = 0 Beep End If End Sub 8-1-2 KeyUp事件和KeyDown事件 当焦点在某个对象上时,按下键盘上的某个键就会触发KeyDown事件,释放某个按键时就会触发KeyUp事件。 根据该控件是否为控件数组的不同,KeyDown和KeyUp事件过程也存在两种形式: Private Sub 对象名_KeyDown(KeyCode As Integer, Shift As Integer) Private Sub 对象名_KeyUp(KeyCode As Integer, Shift As Integer) Private Sub 对象名_KeyDown(Index As Integer, KeyCode As Integ

文档评论(0)

挑战不可能 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档