《vb第2版》课件第9章 键盘与鼠标事件过程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《vb第2版》课件第9章 键盘与鼠标事件过程.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb第2版 vb第2版课件第9章 键盘与鼠标事件过程 vb 课件 键盘 鼠标 事件 过程
- 资源描述:
-
1、第第9章章 键盘与鼠标事件过程键盘与鼠标事件过程9.1键盘事件键盘事件9.2鼠标事件鼠标事件9.3 鼠标属性鼠标属性9.4 拖放拖放9.5 小结小结第第9章章 键盘与鼠标事件过程键盘与鼠标事件过程近年来,尽管语音识别输入、手写识别输入等技近年来,尽管语音识别输入、手写识别输入等技术发展迅速,但是鼠标和键盘仍然是人们操纵计术发展迅速,但是鼠标和键盘仍然是人们操纵计算机的主要工具。对鼠标器和键盘进行编程是程算机的主要工具。对鼠标器和键盘进行编程是程序设计人员必须掌握的基本技术。序设计人员必须掌握的基本技术。VB应用程序除了能响应鼠标的单击(应用程序除了能响应鼠标的单击(Click)和双)和双击(击
2、(DbClick)事件外,还能响应多种鼠标事件和)事件外,还能响应多种鼠标事件和键盘事件。本章主要介绍了键盘事件。本章主要介绍了VB对象能够识别的三对象能够识别的三种键盘事件:种键盘事件:KeyPress、KeyDown、KeyUp事事件和三个鼠标事件:件和三个鼠标事件:MouseDown、MouseUp、MouseMove事件。事件。第第9章章 键盘与鼠标事件过程键盘与鼠标事件过程通过本章的学习,我们可以对学生信息管理系统通过本章的学习,我们可以对学生信息管理系统中窗体上的对象编写其键盘和鼠标事件过程代码,中窗体上的对象编写其键盘和鼠标事件过程代码,从而使该应用程序能够响应多种键盘和鼠标事件
3、。从而使该应用程序能够响应多种键盘和鼠标事件。此外,此外,VB应用程序还可同时支持事件驱动的拖放应用程序还可同时支持事件驱动的拖放功能和功能和OLE的拖放功能。本章介绍了的拖放功能。本章介绍了VB提供的用提供的用于鼠标拖放操作处理的于鼠标拖放操作处理的DragMode和和DragIcon属属性、性、Drag方法、方法、DragOver和和DragDrop事件。同事件。同时,简要介绍了时,简要介绍了VB所支持的所支持的OLE拖放的实现方法。拖放的实现方法。9.1键盘事件键盘事件键盘事件是由键入键盘按键产生的。对于接受文本输入的控键盘事件是由键入键盘按键产生的。对于接受文本输入的控件,如文本框,通
4、常需要控制文本框中输入的内容,处理件,如文本框,通常需要控制文本框中输入的内容,处理ASCII字符,这就需要对键盘事件编程。字符,这就需要对键盘事件编程。在在VB中,对象识别的键盘事件有以下三种:中,对象识别的键盘事件有以下三种:KeyPress事件:用户按下并释放一个会产生事件:用户按下并释放一个会产生ASCII码的键码的键时被触发。时被触发。KeyUp事件:用户按下键盘上任意一个键时被触发。事件:用户按下键盘上任意一个键时被触发。KeyDown事件:用户释放键盘上任意一个键时被触发。事件:用户释放键盘上任意一个键时被触发。9.1键盘事件键盘事件 KeyPress事件当用户按下和松开一个事件
5、当用户按下和松开一个ASCII字符键时发生。字符键时发生。该事件发生时,被按键的该事件发生时,被按键的ASCII码将自动传递给事件过程的码将自动传递给事件过程的KeyAscii参数。在程序中,通过访问该参数,即可获知用户参数。在程序中,通过访问该参数,即可获知用户按下了哪一个键,并可识别字母的大小写。按下了哪一个键,并可识别字母的大小写。KeyPress事件过事件过程形式如下:程形式如下:窗体的窗体的KeyPress事件过程:事件过程:Private Sub Form_KeyPress(KeyAscii As Integer)End Sub窗体上控件的窗体上控件的KeyPress事件过程:事件
6、过程:Private Sub Object_KeyPress(Index As Integer,KeyAscii As Integer)End Sub9.1键盘事件键盘事件 其中:其中:Index:是一个整数,用来唯一标识一个在控件数组中的:是一个整数,用来唯一标识一个在控件数组中的控件;控件;KeyAscii:是被按下字符键的标准:是被按下字符键的标准ASCII码。码。KeyAscii通过引用通过引用传递,对它进行改变可给对象发送一个不同的字符。将传递,对它进行改变可给对象发送一个不同的字符。将KeyAscii改变为改变为0时可取消击键,这样一来对象便接收不到所键时可取消击键,这样一来对象便
7、接收不到所键的字符。的字符。在默认情况下,当用户对当前具有控制焦点的对象进行按下并释在默认情况下,当用户对当前具有控制焦点的对象进行按下并释放的键盘操作时,直接触发该对象的放的键盘操作时,直接触发该对象的KeyPress事件,窗体本身事件,窗体本身不会接收到该事件。但是,当把窗体的不会接收到该事件。但是,当把窗体的KeyPreview属性被设置属性被设置为为True时,窗体将先于该窗体上的控件接收该事件,窗体接收到时,窗体将先于该窗体上的控件接收该事件,窗体接收到该事件后控件将继续接收该事件。利用这一点,在窗体级事件过该事件后控件将继续接收该事件。利用这一点,在窗体级事件过程中修改了程中修改了
8、KeyAscii变量的值,则当前选中对象的变量的值,则当前选中对象的KeyPress事事件将接收到修改后的键盘码,如果窗体级事件过程将件将接收到修改后的键盘码,如果窗体级事件过程将KeyAscii设置为设置为0,则不再调用对象的,则不再调用对象的KeyPress事件过程。事件过程。9.1键盘事件键盘事件 说明:说明:(1)KeyPress事件只对会产生事件只对会产生ASCII码的按键有反应,包括码的按键有反应,包括数字、大小写的字母、标点符号、数字、大小写的字母、标点符号、Enter、BackSpace、Esc、Tab等。对于如方向键这样的不会产生等。对于如方向键这样的不会产生ASCII码的按
9、键,码的按键,KeyPress事件不会被触发。事件不会被触发。(2)在默认情况下,具有焦点的对象才能接收该事件。一个)在默认情况下,具有焦点的对象才能接收该事件。一个窗体只有在不具有可视的和有效的控件时或窗体只有在不具有可视的和有效的控件时或KeyPreview属性属性被设置为被设置为True时才能接收该事件。时才能接收该事件。KeyPress事件常用于编写文本框的事件处理器,因为这个事事件常用于编写文本框的事件处理器,因为这个事件发生在字符按下和显示在文本框之前。利用该事件,可以对件发生在字符按下和显示在文本框之前。利用该事件,可以对文本框输入的数据进行限制。文本框输入的数据进行限制。9.1
10、键盘事件键盘事件 例如,在学生信息管理系统的例如,在学生信息管理系统的“添加学籍信息添加学籍信息”窗体窗体frmAddEss上有一个用于输入学生学号的文本框上有一个用于输入学生学号的文本框txtSID,如图,如图9-1所示。其所示。其KeyPress事件过程代码如下:事件过程代码如下:Private Sub txtSID_KeyPress(KeyAscii As Integer)学号文本框学号文本框 按键非数字或回删键,取消按键非数字或回删键,取消 If Not IsNumeric(Chr(KeyAscii)And KeyAscii 8 Then KeyAscii=0 End IfEnd Su
11、b则该文本框只能接收则该文本框只能接收09的数字字符和回删键。如果输入了的数字字符和回删键。如果输入了其他字符,则将其其他字符,则将其KeyAscii更改为更改为0,使控件最后接收到的是,使控件最后接收到的是KeyAscii=0的字符(空字符,不等于空格字符),这样就抑制的字符(空字符,不等于空格字符),这样就抑制了那些字符的输入。了那些字符的输入。9.1键盘事件键盘事件 txtSID图图9-1 KeyPress事件的用法事件的用法9.1键盘事件键盘事件 学生信息管理系统的学生信息管理系统的“修改成绩修改成绩”窗体窗体frmModiGrade上的上的用于输入学生成绩的文本框用于输入学生成绩的文
12、本框txtGrade,如图,如图9-2所示。其所示。其KeyPress事件过程代码与事件过程代码与txtSID的相同,也是利用该事件,的相同,也是利用该事件,实现对实现对txtGrade输入的数据进行限制。输入的数据进行限制。txtGrade图图9-2 KeyPress事件的用法事件的用法9.1键盘事件键盘事件 KeyPress事件除了可以对文本框输入的数据进行限制外,还事件除了可以对文本框输入的数据进行限制外,还可以用来对文本框输入的数据进行修改,控件接收的是经过可以用来对文本框输入的数据进行修改,控件接收的是经过修改后的数据。例如,如果希望将文本框修改后的数据。例如,如果希望将文本框Tex
13、t1中的所有字符中的所有字符都强制转换为大写字符,则其都强制转换为大写字符,则其KeyPress事件过程代码如下:事件过程代码如下:Private Sub Text1_KeyPress(KeyAscii As Integer)KeyAscii=Asc(UCase(Chr(KeyAscii)End Sub当控制焦点置于某对象上,同时用户按下键盘上的任一键,当控制焦点置于某对象上,同时用户按下键盘上的任一键,便会对相应对象触发便会对相应对象触发KeyDown事件,释放按键便触发相应对事件,释放按键便触发相应对象的象的KeyUp事件。与事件。与KeyPress事件不同,事件不同,KeyUp和和Key
14、Down事件返回的是被按下或释放的键盘扫描码和组合键事件返回的是被按下或释放的键盘扫描码和组合键的状态。其事件过程形式如下:的状态。其事件过程形式如下:Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)End SubPrivate Sub Object_KeyDown(Index As Integer,KeyCode As Integer,Shift As Integer)End SubPrivate Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)End SubPri
15、vate Sub Object_KeyUp(Index As Integer,KeyCode As Integer,Shift As Integer)End Sub9.1键盘事件键盘事件 其中:其中:KeyCode:是用户所按键的扫描码。它告诉事件过程用户所按:是用户所按键的扫描码。它告诉事件过程用户所按键的物理键位,因此通过该参数不能区分字母大小写。因为同键的物理键位,因此通过该参数不能区分字母大小写。因为同一字母的大小写均是由同一字母键键入的,其一字母的大小写均是由同一字母键键入的,其KeyCode相同,相同,为此字母的大写字符的为此字母的大写字符的ASCII码。对于有上档字符和下档字符码
16、。对于有上档字符和下档字符的键,其的键,其KeyCode也是相同的,为下档字符的也是相同的,为下档字符的ASCII码。码。对对KeyCode参数的测试,可以通过相应的参数的测试,可以通过相应的ASCII码,也可使用码,也可使用键码常数,如:键码常数,如:vbKeyF1(F1键)、键)、vbKeyHome(Home键)、键)、vbKeyLeft(方向键)、方向键)、vbKeyUp(方向键)。方向键)。9.1键盘事件键盘事件 其中:其中:Shift:是一个整数,用来标明在该事件发生时是否还同时按:是一个整数,用来标明在该事件发生时是否还同时按了了Shift、Ctrl和和Alt这三个控制键。它是具有
17、相这三个控制键。它是具有相应于应于Shift键(位键(位0),),Ctrl键(位键(位1)以及)以及Alt键键(位(位2)最少二进制位的一个位字段。对应位为)最少二进制位的一个位字段。对应位为1表示相应键表示相应键被按下,为被按下,为0表示该键未被按下。由此,表示该键未被按下。由此,Shift参数的值等于参数的值等于1、2和和4分别表示分别表示Shift、Ctrl和和Alt键被按下。若键被按下。若Ctrl和和Alt被同时按下,则被同时按下,则Shift参数的值为参数的值为6(二进制(二进制的的110)。因此,可结合该参数项来判断输入字母的大小写。)。因此,可结合该参数项来判断输入字母的大小写。
18、图图9-3说明了说明了Shift参数与位的关系。参数与位的关系。Shift参数与位的组合见表参数与位的组合见表9-1。9.1键盘事件键盘事件 图图9-3 Shift参数与位的关系参数与位的关系9.1键盘事件键盘事件 SCA高位低位Alt键Ctrl键Shift键210表表9-1 Shift参数与位的组合参数与位的组合9.1键盘事件键盘事件 Shift参数值内部常数说明0(二进制000)没有键被按下1(二进制001)vbShiftMaskShift键被按下2(二进制010)vbCtrlMaskCtrl键被按下3(二进制011)vbShiftMask+vbCtrlMask Shift键、Ctrl键被
19、按下4(二进制100)vbAltMaskAlt键被按下5(二进制101)vbShiftMask+vbAltMaskShift键、Alt键被按下6(二进制110)vbCtrlMask+vbAltMaskCtrl键、Alt键被按下7(二进制111)vbCtrlMask+vbAltMask+vbShiftMaskShift键、Ctrl键、Alt键被按下下面的代码使用下面的代码使用Shift参数判断是否按下了字母的大写形式。参数判断是否按下了字母的大写形式。Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)If KeyCode=
20、vbKeyA And Shift=1 Then MsgBox 你按了大写字母你按了大写字母A键键End Sub在上述代码中,对在上述代码中,对Shift参数的测试,也可使用系统定义的内参数的测试,也可使用系统定义的内部常数。即写成如下形式:部常数。即写成如下形式:Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)If KeyCode=vbKeyA And Shift=vbShiftMask Then MsgBox 你按了大你按了大写字母写字母A键键End Sub说明:说明:(1)对于这两个事件来说,带焦点的对象都能接收所
21、有按键。)对于这两个事件来说,带焦点的对象都能接收所有按键。一个窗体只有在不具有可视的和有效的控件时才可以获得焦一个窗体只有在不具有可视的和有效的控件时才可以获得焦点。点。9.1键盘事件键盘事件(2)键不能触发键不能触发KeyUp和和KeyDown事件;命令按钮事件;命令按钮的的Default属性设置为属性设置为True时,时,键不能触发键不能触发KeyUp和和KeyDown事件;命令按钮的事件;命令按钮的Cancel属性设置为属性设置为True时,时,键不能触发键不能触发KeyUp和和KeyDown事件。事件。(3)对于任何不被)对于任何不被KeyPress识别的按键应当使用识别的按键应当使
22、用KeyUp和和KeyDown事件过程来处理,如按下功能键、编辑键、定位键事件过程来处理,如按下功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与以及任何这些键和键盘换档键的组合等。与KeyUp和和KeyDown事件不同的是,事件不同的是,KeyPress事件不显示键盘的物理事件不显示键盘的物理状态,而只是传递一个字符。表状态,而只是传递一个字符。表9-2列出了列出了KeyPress与与KeyDown及及KeyUp事件的详细区别。事件的详细区别。9.1键盘事件键盘事件(2)键不能触发键不能触发KeyUp和和KeyDown事件;命令按钮事件;命令按钮的的Default属性设置为属性设置
23、为True时,时,键不能触发键不能触发KeyUp和和KeyDown事件;命令按钮的事件;命令按钮的Cancel属性设置为属性设置为True时,时,键不能触发键不能触发KeyUp和和KeyDown事件。事件。(3)对于任何不被)对于任何不被KeyPress识别的按键应当使用识别的按键应当使用KeyUp和和KeyDown事件过程来处理,如按下功能键、编辑键、定位键事件过程来处理,如按下功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与以及任何这些键和键盘换档键的组合等。与KeyUp和和KeyDown事件不同的是,事件不同的是,KeyPress事件不显示键盘的物理事件不显示键盘的物理状态,
24、而只是传递一个字符。表状态,而只是传递一个字符。表9-2列出了列出了KeyPress与与KeyDown及及KeyUp事件的详细区别。事件的详细区别。9.1键盘事件键盘事件【例例9-1】本例说明本例说明KeyDown和和KeyUp的用法。在窗体上设的用法。在窗体上设置四个标签、两个文本框、三个复选框、一个命令按钮。程置四个标签、两个文本框、三个复选框、一个命令按钮。程序运行界面如图序运行界面如图9-4所示。所示。9.1键盘事件键盘事件 图图9-4 KeyDown和和KeyUp的用法的用法程序代码如下:程序代码如下:Private Sub Form_Activate()Text1.SetFocus
25、End Sub文本(输入)框文本(输入)框Text1的的Keydown事件过程代码:事件过程代码:Private Sub Text1_Keydown(KeyCode As Integer,Shift As Integer)Text2.Text=Text2.Text&Str(KeyCode)&,If KeyCode 111 And KeyCode 0,1,0)Check2.Value=IIf(Shift And vbCtrlMask)0,1,0)Check3.Value=IIf(Shift And vbAltMask)0,1,0)End Sub9.1键盘事件键盘事件 9.1键盘事件键盘事件 上述
展开阅读全文