- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 毕业终极版1.doc
- 变频器故障Microsoft Word 文档.doc
- 变英复习备考宝典.doc
- 标点符号的用法Microsoft Word 文档.doc
- 表格式住院病例中英版对照.doc
- 病历中英对照.doc
- 不吃早餐的危害,早餐吃什么好?.doc
- 不懂这些基础知识,你好意思说你是iOS应用开发设计师?.doc
- 不能按字面直译的词组.doc
- 材料类期刊投稿指南.doc
- 江苏省2010届高考考纲词汇(英文版).doc
- 江苏省南京市2014高考英语最后冲刺_阅读理解巩固自练2P.doc
- 江苏省苏州市2010届高三英语期中联考试卷.doc
- 江苏省苏州市景范中学2013-2014学年八年级上学期期中考试英语试题.doc
- 江苏省无锡市锡山高级中学2014届中考英语二模试题 牛津版.doc
- 江苏省无锡市宜兴外国语学校2013-2014学年八年级上学期英语期中试题(word版含答案).doc
- 江西财经大学高级财务会计国际学院题库chapter_02.doc
- 江西财经大学高级财务会计国际学院题库chapter_10.doc
- 江西财经大学高级财务会计国际学院题库chapter_15.doc
- 江西省赣州市四所重点中学2014届高三英语上学期期末联考试题 新人教版.doc
文档评论(0)