- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第八章键盘与鼠标操作(2w)
程序在运行过程中,经常需要知道用户对键盘和鼠标的具体操作,例如用户按下键盘上的“A”键时是想输入字符“A”还是输入“a”呢,当用户利用鼠标选中“删除”时是想彻底删除还是想放入回收站呢等等,以便于根据不同的情况,执行不同的具体操作。为此VisualBasic专门定义了和键盘与鼠标有关的事件和方法。
键盘操作
当我们敲击一下键盘上的某个按键时,将会先后触发对应对象的KeyDown、KeyPress、(对于文本框之类的对象还会触发Change)、KeyUp等一系列事件。根据不同的具体应用,我们可以选择不同的事件进行编程。
需要说明的是,对键盘的某个按键进行操作时,触发的是目前具有输入焦点(Focus)
对象的事件。一般情况下窗体对象不响应这些事件,除非满足下面几个条件:
目前窗体上没有添加任何对象,则窗体接收键盘事件。
目前窗体上有对象,但是它们属于下面两种情况:
这类对象不具有接收焦点的能力,例如:标签、框架、形状(Shape)、Timer、
Image等等
这类对象本来可以接收焦点(例如:文本框),但目前处于Disabled状态。
窗体的KeyPreview属性为True。所谓KeyPreview的属性为True,就是说无论在窗体内的什么控件内利用键盘输入,都需要事先经过窗体进行检查。
其中,前两种情况下只触发窗体的KeyDown、KeyPress、KeyUp事件,第三种情况下将先后触发窗体的KeyDown、控件的KeyDown、窗体的KeyPress、控件的KeyPress、窗体的KeyUp、控件的KeyUp事件。
KeyPress事件
KeyPress事件过程的的形式有两种:
PrivateSub对象名_KeyPress(KeyAsciiAsInteger) 用于非控件数组PrivateSub对象名_KeyPress(IndexAsInteger,KeyAsciiAsInteger)用于控件数组其中:KeyAscii的值在本过程中由系统自动提供,就是用户输入字符的ASCII值。例如:正常情况下我们按下键盘上的“A”键,则KeyAscii的值为97,表示用户想
输入字符“a”;当CapsLock键锁定为大写或同时按下Shift键时,KeyAscii的值为65,表示用户想输入字符“A”。
说明:
并不是按下键盘上的任意一个键都会引发 KeyPress事件,只有那些会产生
ASCII的按键(例如:数字键、大小写字母键、回车、空格等)才会触发KeyPress事件。对于那些不能产生ASCII的按键(例如:方向键←↑→↓)则不会触发KeyPress事件。
因为KeyPress事件在Change事件之前触发,因此如果在KeyPress事件中改变了KeyAscii的值,那么在控件中回显的字符将是改变后的结果。例如下面代码的功能就是无论输入的是大写还是小写,在Text1内都强制显示为小写字母:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=65AndKeyAscii=90Then
KeyAscii=KeyAscii+32EndIf
EndSub
当窗体的KeyPreview属性为True时,在窗体的KeyPress事件里如果改变了KeyAscii的值,那么控件的KeyPress事件里的KeyAscii的值也会跟着改变,当然回显的字符也就被改变了。例如下面的代码就是强制用户在成绩录入窗体里只能输入数值,如果输入非数值字符则鸣笛报错,如图8-1所示:
图8-1窗体的keyPreview示例
PrivateSubForm_KeyPress(KeyAsciiAsInteger)IfKeyAscii48OrKeyAscii57Then
KeyAscii=0Beep
EndIfEndSub
KeyUp事件和KeyDown事件
当焦点在某个对象上时,按下键盘上的某个键就会触发 KeyDown事件,释放某个按键时就会触发KeyUp事件。
根据该控件是否为控件数组的不同,KeyDown和KeyUp事件过程也存在两种形式:
PrivateSub对象名_KeyDown(KeyCodeAsInteger,ShiftAsInteger)PrivateSub对象名_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
Private
您可能关注的文档
- 简易呼吸气囊操作流程.docx
- 简易呼吸器操作流程图.docx
- 简易呼吸器的构造图.docx
- 简易呼吸器结构示意图.docx
- 简易呼吸器使用技术.docx
- 简易呼吸器使用说明.docx
- 简易汽车12V电瓶充电器电路.docx
- 简易人工呼吸器操作流程.docx
- 简易无线电遥控系统设计报告.docx
- 简易小手电的制作.docx
- 浙江金华市公共资源交易中心永康市分中心编外人员招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波慈溪市政协办公室招考聘用编外工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江金华永康市西溪镇人民政府招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 福建南平市公安局建阳分局招考聘用辅警笔试历年典型考题及考点研判与答案详解.docx
- 浙江嘉兴海盐县武原街道基层残疾人工作专职委员(公益岗位)招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波知识产权保护中心招考聘用工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江杭州建德市面向2024届普通高校毕业生招考聘用教师(第二批)16人笔试历年典型考题及考点研判与答案详解.docx
- 浙江省台州中学面向2024届普通高校毕业生招考聘用教师12人笔试历年典型考题及考点研判与答案详解.docx
- 湖北师范大学体育学院专任教师招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 重庆市南岸区教育事业单位面向2024届高校毕业生招考聘用114人笔试历年典型考题及考点研判与答案详解.docx
文档评论(0)