第10章 键盘与鼠标.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档