版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VisualBasic鼠标与键盘事件过程第九章 鼠标与键盘事件过程9.1 键盘事件9.2 鼠标事件9.3 鼠标拖放VisualBasic鼠标与键盘事件过程9.1 键盘事件 1 KeyPress事件 2 KeyDown事件与 KeyUp事件VisualBasic鼠标与键盘事件过程1、 KeyPress事件(1)事件的触发)事件的触发 当按下键盘上的某些键时,将会产生当按下键盘上的某些键时,将会产生KeyPress事事件。件。 KeyPress事件只对会产生事件只对会产生ASCII码的按键有反应,码的按键有反应,包括数字、字母、特殊符号、包括数字、字母、特殊符号、Enter、Backspace、E
2、sc、Tab等。等。 对于如方向键或功能键这样的不会产生对于如方向键或功能键这样的不会产生ASCII码码的按键,的按键,KeyPress事件不会被触发。事件不会被触发。 VisualBasic鼠标与键盘事件过程1、 KeyPress事件(2)与此之间相关的对象)与此之间相关的对象 该事件可用于该事件可用于 如果某个控件拥有输入焦点,当按下某个键时,如果某个控件拥有输入焦点,当按下某个键时,这个控件的这个控件的KeyPress事件被触发。事件被触发。 在某一时刻,输入焦点只能位于一个控件上,如在某一时刻,输入焦点只能位于一个控件上,如果窗体上没有活动的或者可见的控件,则输入焦果窗体上没有活动的或
3、者可见的控件,则输入焦点位于窗体上点位于窗体上 VisualBasic鼠标与键盘事件过程1、 KeyPress事件(3)事件过程)事件过程 Private Sub Form_KeyPress(KeyAscii As Integer)End Sub或或Private Sub Object_KeyPress(Index As Integer , KeyAscii As Integer)End Sub其中其中object为与之相关的控件名为与之相关的控件名VisualBasic鼠标与键盘事件过程1、 KeyPress事件 在默认的情况下,控件的键盘事件优先于窗体的在默认的情况下,控件的键盘事件优先于
4、窗体的键盘事件,因此在发生键盘事件时,总是先激活键盘事件,因此在发生键盘事件时,总是先激活拥有焦点的控件的键盘事件。拥有焦点的控件的键盘事件。 如果把窗体的如果把窗体的KeyPreview属性设置为属性设置为True,则,则线触发窗体的键盘事件,再触发具有焦点的控件线触发窗体的键盘事件,再触发具有焦点的控件的键盘事件。否则不能激活窗体的键盘事件的键盘事件。否则不能激活窗体的键盘事件 VisualBasic鼠标与键盘事件过程例例1:text2中输入字符,中输入字符,text3中显示按键对应的中显示按键对应的ascii值;值;如果如果text3中输入一个整数(中输入一个整数(ASCII),),te
5、xt2中显示其对中显示其对应字符应字符Private Sub Text2_KeyPress(KeyAscii As Integer) Text3.Text = KeyAsciiEnd SubPrivate Sub Text3_LostFocus()Text2.Text = Chr(Val(Text3.Text)End Sub1、 KeyPress事件VisualBasic鼠标与键盘事件过程1、 KeyPress事件例例2:假定窗体上有一个文本框(:假定窗体上有一个文本框(Text1),编写了下面的事),编写了下面的事件过程,只允许文本框输入件过程,只允许文本框输入09的数字,而输入的其他字的数
6、字,而输入的其他字符,则响铃,并消除该字符。符,则响铃,并消除该字符。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then Beep KeyAscii = 0 取消该字符 End IfEnd SubVisualBasic鼠标与键盘事件过程 例例3:如果窗体级事件过程修改了:如果窗体级事件过程修改了KeyAscii参数的值,则参数的值,则当前激活对象的当前激活对象的KeyPress事件将接收改变后的数据。如事件将接收改变后的数据。如果窗体级事件将果窗体级事件将KeyAscii的值设置为的值设置为0,则不再调用对象
7、,则不再调用对象的的KeyPress事件过程。事件过程。Private Sub Form_KeyPress(KeyAscii As Integer)Print Chr(KeyAscii)If KeyAscii 57 Then Beep KeyAscii = 0 End IfEnd SubVisualBasic鼠标与键盘事件过程2 KeyDown事件和KeyUp事件 (1)事件的触发 当按下任何键的同时触发KeyDown事件;按下抬起时触发KeyUp事件(2)相关对象:与keypress事件相同VisualBasic鼠标与键盘事件过程(3)事件过程)事件过程Private Sub Form_Ke
8、yDown(KeyCode As Integer, Shift As Integer)End Sub或或Private Sub Object_KeyDown(Index As Integer,KeyCode As Integer, Shift As Integer)End Sub注意:过程的形参注意:过程的形参keycode代表键的代码,与代表键的代码,与ASCII码不同,码不同,它直接代表这个某个键。任何键都对应一个它直接代表这个某个键。任何键都对应一个keycodeVisualBasic鼠标与键盘事件过程 KeyCode 该参数是用户所操作的按键的扫描代码,它告诉该参数是用户所操作的按键的
9、扫描代码,它告诉事件过程用户所操作的物理键。大写字母和小写事件过程用户所操作的物理键。大写字母和小写字母使用同一个键,它们的字母使用同一个键,它们的KeyCode相同。但是相同。但是大键盘(打印机键盘)上的数字键与数字键盘上大键盘(打印机键盘)上的数字键与数字键盘上相同的数字键的相同的数字键的KeyCode是不一样的。对于有上是不一样的。对于有上档字符和下档字符的键,其档字符和下档字符的键,其KeyCode为下档字符为下档字符的的ASCII码。码。VisualBasic鼠标与键盘事件过程 Shift 该参数是一个整数,用以表示当用户按下键时,该参数是一个整数,用以表示当用户按下键时,三个转换键
10、三个转换键Shift、Ctrl和和Alt的状态。这三个键分的状态。这三个键分别以一个二进制位的形式来表示。当该位为别以一个二进制位的形式来表示。当该位为0时,时,表示相应的键没有按下,当该位为表示相应的键没有按下,当该位为1时,表示相时,表示相应的键被按下。应的键被按下。图9.1.1 Shift参数的各转换键b0b1b2ShiftCtrlAltVisualBasic鼠标与键盘事件过程十进制数二进制数含义0000没有按下转换键1001仅按下Shift键2010仅按下Ctrl键3011按下Ctrl+Shift键4100仅按下Alt键5101按下Alt+Shift键6110按下Alt+Ctrl键71
11、11按下Alt+Ctrl+shift键VisualBasic鼠标与键盘事件过程例Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF5 And Shift = 4 Then End End IfEnd SubVisualBasic鼠标与键盘事件过程9.2 鼠标事件 MouseDown事件 MouseUp事件 MouseMove事件 VisualBasic鼠标与键盘事件过程(1)相关对象相关对象 鼠标事件适用于窗体和大多数控件,包括鼠标事件适用于窗体和大多数控件,包括复选框、命令按钮、
12、单选按钮、框架、列复选框、命令按钮、单选按钮、框架、列表框、文本框、目录框、文件框、图像框、表框、文本框、目录框、文件框、图像框、图片框、滚动条、标签等。图片框、滚动条、标签等。VisualBasic鼠标与键盘事件过程(2)事件过程)事件过程Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Sin
13、gle)End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubVisualBasic鼠标与键盘事件过程 鼠标位置鼠标位置 鼠标的位置由参数鼠标的位置由参数x,y确定。这里的确定。这里的x、y随鼠标光标在窗体上的移动而变化。当移随鼠标光标在窗体上的移动而变化。当移动到某个位置时,按下鼠标键,则产生动到某个位置时,按下鼠标键,则产生MouseDown事件,如果释放键,则产生事件,如果释放键,则产生MouseUp事件。事件。(x,y)通常是接收鼠标
14、事件通常是接收鼠标事件的窗体或控件上的坐标。的窗体或控件上的坐标。VisualBasic鼠标与键盘事件过程 鼠标的键鼠标的键 鼠标键状态由参数鼠标键状态由参数Button来表示。该参数是一个来表示。该参数是一个整数。在表示按键状态时,实际上只使用低三位,整数。在表示按键状态时,实际上只使用低三位,最低位表示左键,右数第二位表示右键,第三位最低位表示左键,右数第二位表示右键,第三位表示中间键,但表示中间键,但Windows鼠标驱动程序不能识别鼠标驱动程序不能识别中间键。中间键。 图9.2.2 Button参数的各位b0b1b2左键右键中间键VisualBasic鼠标与键盘事件过程 对于对于Mou
15、seDown和和MouseUp事件来说,事件来说,只能用鼠标的按键参数判断是否按下或释只能用鼠标的按键参数判断是否按下或释放某一个键,不能检查两个键被同时按下放某一个键,不能检查两个键被同时按下或释放,因此或释放,因此Button参数的值其实只有参数的值其实只有3种,种,即即1、2和和4。 VisualBasic鼠标与键盘事件过程Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Print 左键被按下 If Button = 2
16、 Then Print 右键被按下 If Button = 4 Then Print 中间键被按下End SubVisualBasic鼠标与键盘事件过程 对于对于MouseMove事件来说,可以通过事件来说,可以通过Button参数参数判断按下一个或同时按下两个、三个键判断按下一个或同时按下两个、三个键 例:判断是否左键和右键被同时按下,而中间键释放例:判断是否左键和右键被同时按下,而中间键释放Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button =
17、 3 Then Print 同时按下左键和右键,同时按下左键和右键,中间键释放中间键释放End SubVisualBasic鼠标与键盘事件过程 shift参数参数 转换参数(转换参数(Shift)是一个整数值,用来表示)是一个整数值,用来表示Shift、Ctrl和和Alt三个功能键的状态,使用方法与三个功能键的状态,使用方法与KeyDown和和KeyUp键盘事件的键盘事件的Shift参数值完全参数值完全相同相同 VisualBasic鼠标与键盘事件过程 鼠标的光标形状鼠标的光标形状 (1)MousePointer属性属性 鼠标光标的形状通过鼠标光标的形状通过MousePointer属性来设置。
18、该属属性来设置。该属性可以在属性窗口中设置,也可以在程序代码中设置。性可以在属性窗口中设置,也可以在程序代码中设置。 MousePointer属性是一个整数,可以取属性是一个整数,可以取015。(2) 自定义鼠标光标自定义鼠标光标 如果把如果把MousePointer属性设置为属性设置为99,则可以,则可以通过通过MouseIcon属性指出一个光标文件,来定义属性指出一个光标文件,来定义自己的鼠标光标自己的鼠标光标。 VisualBasic鼠标与键盘事件过程 例Private Sub Form_Click() m As Integer m为静态变量 Cls Shift.MousePointer
19、 = m Print “鼠标的形状是:; m m = m + 1 If m 15 Then m = 99End SubVisualBasic鼠标与键盘事件过程 例 使用鼠标事件编写简单绘图程序 VisualBasic鼠标与键盘事件过程9.3 鼠标拖放1、拖放的概念、拖放的概念 VB为用户提供使用鼠标将对象从一个位置拖为用户提供使用鼠标将对象从一个位置拖动到另外一个位置,这个过程叫做拖放。动到另外一个位置,这个过程叫做拖放。 拖放的过程是,把鼠标光标移动到一个控件拖放的过程是,把鼠标光标移动到一个控件对象上,按下鼠标键,然后移动鼠标,该对象随对象上,按下鼠标键,然后移动鼠标,该对象随着鼠标移动的
20、而移动,这时如果释放鼠标键,对着鼠标移动的而移动,这时如果释放鼠标键,对象被放在了新的位置。象被放在了新的位置。 通常把原来位置的对象叫做源对象,而拖放后通常把原来位置的对象叫做源对象,而拖放后新位置的对象叫做目标对象。新位置的对象叫做目标对象。 VisualBasic鼠标与键盘事件过程2、相关对象、相关对象 除了菜单、计时器和通用对话框以外,其除了菜单、计时器和通用对话框以外,其他控件都可以在程序运行期间被拖放。他控件都可以在程序运行期间被拖放。VisualBasic鼠标与键盘事件过程3、相关事件和方法(1) 属性 和拖放有关的属性有两个,DragMode和DragIcon。VisualBa
21、sic鼠标与键盘事件过程u DragMode属性属性 该属性用来设置自动或手动拖放方式。当其该属性用来设置自动或手动拖放方式。当其值为值为0时,表示采用手动方式;当其值为时,表示采用手动方式;当其值为1时,表时,表示采用自动方式。在默认情况下,该属性值为示采用自动方式。在默认情况下,该属性值为0。 该属性可以在属性窗口中设置,也可以在程序该属性可以在属性窗口中设置,也可以在程序代码中设置。代码中设置。 注意,如果把一个对象的注意,如果把一个对象的DragMode属性设置属性设置为为1,则该对象不再接收,则该对象不再接收Click事件和事件和MouseDown事件。事件。 VisualBasic
22、鼠标与键盘事件过程uDragIcon属性 在拖动对象的过程中,并不是移动对象本身,在拖动对象的过程中,并不是移动对象本身,而是移动代表对象的图标。一旦拖动一个控件,而是移动代表对象的图标。一旦拖动一个控件,它就变成一个图标,等放下后再恢复成原来的控它就变成一个图标,等放下后再恢复成原来的控件。件。DragIcon属性用来设置该图标对应的文件信属性用来设置该图标对应的文件信息。可以在设计和运行时设置此属性。息。可以在设计和运行时设置此属性。VisualBasic鼠标与键盘事件过程(2)拖放事件)拖放事件uDragDrop :当把对象拖到目标之后,如果释放:当把对象拖到目标之后,如果释放鼠标键,则
23、鼠标键,则会产生一个会产生一个DragDrop事件事件该事件的事件过程格式如下:该事件的事件过程格式如下: Private Sub Object_DragDrop(Source As Control, X As Single, Y As Single) End SubVisualBasic鼠标与键盘事件过程uDragOver事件:当拖动对象越过某个控件时,被越过的控件产生DragOver事件 格式如下: Private Sub Object _DragOver(Source As Control, X As Single, Y As Single, State As Integer) End SubVisualBasic鼠标与键盘事件过程 四个参数:四个参数:Sourc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源电池行业技术突破报告及市场创新报告
- 跨学科教学知识建构过程可视化与学习效果提升研究-以人工智能技术为例教学研究课题报告
- 基于大数据的智能研修模式在特殊教育中的应用与实践研究教学研究课题报告
- 基于人工智能教育的情感化学习环境设计研究-以初中为例教学研究课题报告
- 2025年半导体行业先进制程技术报告及芯片创新报告
- 2025安徽蚌埠市东方投资集团有限公司招聘工作人员拟录用人员(第五批)笔试历年参考题库附带答案详解
- 辽宁2025年辽宁省农业科学院赴高校招聘笔试历年参考题库附带答案详解
- 潍坊2025年潍坊市国防教育训练基地招聘军事教练员笔试历年参考题库附带答案详解
- 巴中2025年巴中市检察机关招聘14名聘用制书记员笔试历年参考题库附带答案详解
- 2026年及未来5年中国节能环保工程施工行业发展监测及投资战略咨询报告
- 耐高温铝电解电容器项目计划书
- DZ∕T 0153-2014 物化探工程测量规范(正式版)
- (高清版)TDT 1013-2013 土地整治项目验收规程
- 国家开放大学电大《计算机应用基础(本) 》 终结性考试试题答案(完整版)
- 《建筑基坑降水工程技术规程》DBT29-229-2014
- 防污闪涂料施工技术措施
- 2023年广东学业水平考试物理常考知识点
- 中外政治思想史-复习资料
- GB/T 12385-2008管法兰用垫片密封性能试验方法
- 中国近代史期末复习(上)(第16-20课)【知识建构+备课精研】 高一历史上学期期末 复习 (中外历史纲要上)
- 《LED的基础知识》课件
评论
0/150
提交评论