- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 键盘与鼠标
键盘是一种输入数据或者信息的重要工具,有些控件(如窗体和文本框)本身已经具备了处理输入按键的功能,所以在简单编程的情况下可以不必编写键盘事件过程。但是,如果要识别组合键、功能键、光标移动键、小键盘(数字键盘)上的按键、区别按下和松开的动作、对输入字符进行筛选,就要使用键盘事件了,本章介绍的键盘事件有KeyPress事件、KeyDown事件和KeyUp事件。 10.1.1 KeyPress事件 KeyPress事件,就是当按下键盘上的一个可打印字符键(字母、数字和符号)时所激发的事件。我们知道,在某个时刻,输入焦点只能位于某一个控件上(如果窗体上没有活动的或可见的控件,则输入焦点位于窗体控件上),当一个控件拥有输入焦点时,该控件才能接受从键盘上输入的信息,所以当按下某个键时,所激发的是拥有输入焦点的那个控件的KeyPress事件。支持KeyPress事件的控件有窗体、命令按钮、文本框、复选框、单选框、列表框、组合框、滚动条与图片框等。 该事件过程的语法是: Private Sub object_KeyPress(KeyAscii As Integer) End Sub 其中object是指支持KeyPress事件的控件名,比如文本框控件的KeyPress事件的语法就是: Private Sub Text1_KeyPress(KeyAscii As Integer) End Sub 整形参数KeyAscii传递的是按键字符的ASCII码。例如,当按下【F】键时,KeyAscii的值为70;按下【!】键时,KeyAscii的值为33等。我们可以使用Chr(KeyAscii)函数将KeyAscii参数转变为一个字符,例如Chr(70)=【F】。 KeyPress事件只能够处理可打印的键盘字符和为数很少的几个功能键,如Enter(回车键)和BackSpace(退格键),对于其他功能键、编辑键和定位键,则不作响应。如果要处理不被KeyPress识别的击键,则应该使用KeyDown和KeyUp事件。 KeyPress事件在截取对TextBox或ComboBox控件输入的击键时非常有用,它可以立即测试击键的有效性并在字符输入时对其进行处理。我们如果在KeyPress事件过程中改变了KeyAscii参数的值,就会改变实际输入的字符,将KeyAscii的值改变为0时可取消击键,这样对象便接收不到字符了。 因为不同的字符的ASCII码是不同的,所以利用KeyPress事件可以判断和控制用户的输入,例如可以控制用户在文本框中只能输入数字或字母,还可以判断用户输入的字母是大写还是小写。 我们把一个文本框控件(Text1)拖到窗体上,然后进入程序代码窗口,在“过程”框中选择KeyPress,编写如下代码: Private Sub Text1_KeyPress(KeyAscii As Integer) Text1.Text = If KeyAscii 48 Or KeyAscii 57 Then Beep KeyAscii = 0 Else KeyAscii = KeyAscii + 1 End If End Sub 上述过程首先控制用户的输入,它只允许用户输入0~9的数字(0的ASCII码是48,9的ASCII码是57),如果输入其他字符,则响铃(Beep),并消除该字符;然后,再把用户输入的数字加1。 运行上面的程序,在文本框中输入一个1,则会显示2;输入9的时候,则会显示一个英文冒号,因为英文冒号的ASCII码是58。 上面我们说过,只有在窗体上没有活动或可见控件时,窗体才能接收键盘事件。如果我们希望优先激活窗体的键盘事件,则可以把窗体的KeyPreview属性设置为True。这个属性不只对KeyPress事件有用,对KeyDown和KeyUp事件同样有用。 例10-1(参看教材P164-166) 10.1.2 KeyDown和KeyUp事件 KeyDown事件是当按下按键时触发,而KeyUp事件是当释放按键时触发,这两个事件提供了最低级的键盘响应,可以报告键盘的物理状态,它们返回的是“键”。这和KeyPress事件不同,KeyPress事件并不反映键盘的直接状态,它返回的是“字符”的ASCII码。 我们进一步举例阐明这一差别。按下字母键“A”时,KeyDow
您可能关注的文档
- 立体图形复习体积定3..ppt
- 立体图形与平面图形(第4课时).ppt
- 立体图形总复习.ppt.ppt
- 立体图形复习3.ppt
- 立体图形提高复习.ppt
- 立体图形复习课件.ppt
- 立体图形的特征、表面积展示课.ppt
- 空调器原理及产品知识.ppt
- 立定跳远乒乓球第15-17周课表格式教案.doc
- 立式旱地驱动耙学位答辩.ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)