VisualBasic鼠标与键盘事件过程课件

上传人:人*** 文档编号:579264439 上传时间:2024-08-26 格式:PPT 页数:37 大小:67KB
返回 下载 相关 举报
VisualBasic鼠标与键盘事件过程课件_第1页
第1页 / 共37页
VisualBasic鼠标与键盘事件过程课件_第2页
第2页 / 共37页
VisualBasic鼠标与键盘事件过程课件_第3页
第3页 / 共37页
VisualBasic鼠标与键盘事件过程课件_第4页
第4页 / 共37页
VisualBasic鼠标与键盘事件过程课件_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《VisualBasic鼠标与键盘事件过程课件》由会员分享,可在线阅读,更多相关《VisualBasic鼠标与键盘事件过程课件(37页珍藏版)》请在金锄头文库上搜索。

1、第九章 鼠标与键盘事件过程9.1 键盘事件9.2 鼠标事件9.3 鼠标拖放VisualBasic鼠标与键盘事件过程9.1 键盘事件1 KeyPress事件2 KeyDown事件与 KeyUp事件VisualBasic鼠标与键盘事件过程1、 KeyPress事件(1)事件的触发)事件的触发当按下键盘上的某些键时,将会产生当按下键盘上的某些键时,将会产生KeyPress事事件。件。KeyPress事件只对会产生事件只对会产生ASCII码的按键有反应,码的按键有反应,包括数字、字母、特殊符号、包括数字、字母、特殊符号、Enter、Backspace、Esc、Tab等。等。对于如方向键或功能键这样的不

2、会产生对于如方向键或功能键这样的不会产生ASCII码的码的按键,按键,KeyPress事件不会被触发。事件不会被触发。 VisualBasic鼠标与键盘事件过程1、 KeyPress事件(2)与此之间相关的对象)与此之间相关的对象该事件可用于该事件可用于窗体、复选框、组合框、命令按钮、窗体、复选框、组合框、命令按钮、窗体、复选框、组合框、命令按钮、窗体、复选框、组合框、命令按钮、列表框、图片框、文本框、滚动条以及与文件有列表框、图片框、文本框、滚动条以及与文件有列表框、图片框、文本框、滚动条以及与文件有列表框、图片框、文本框、滚动条以及与文件有关的控件关的控件关的控件关的控件 如果某个控件拥有

3、输入焦点,当按下某个键时,如果某个控件拥有输入焦点,当按下某个键时,这个控件的这个控件的KeyPress事件被触发。事件被触发。 在某一时刻,输入焦点只能位于一个控件上,如在某一时刻,输入焦点只能位于一个控件上,如果窗体上没有活动的或者可见的控件,则输入焦果窗体上没有活动的或者可见的控件,则输入焦点位于窗体上点位于窗体上 VisualBasic鼠标与键盘事件过程1、 KeyPress事件(3)事件过程)事件过程 Private Sub Form_KeyPress(KeyAscii As Integer)End Sub或或Private Sub Object_KeyPress(Index As

4、Integer , KeyAscii As Integer)End Sub其中其中object为与之相关的控件名为与之相关的控件名VisualBasic鼠标与键盘事件过程1、 KeyPress事件在默认的情况下,控件的键盘事件优先于窗体的在默认的情况下,控件的键盘事件优先于窗体的键盘事件,因此在发生键盘事件时,总是先激活键盘事件,因此在发生键盘事件时,总是先激活拥有焦点的控件的键盘事件。拥有焦点的控件的键盘事件。如果把窗体的如果把窗体的KeyPreview属性设置为属性设置为True,则,则线触发窗体的键盘事件,再触发具有焦点的控件线触发窗体的键盘事件,再触发具有焦点的控件的键盘事件。否则不能

5、激活窗体的键盘事件的键盘事件。否则不能激活窗体的键盘事件 VisualBasic鼠标与键盘事件过程例例1:text2中输入字符,中输入字符,text3中显示按键对应的中显示按键对应的ascii值;值;如果如果text3中输入一个整数(中输入一个整数(ASCII),),text2中显示其对中显示其对应字符应字符Private Sub Text2_KeyPress(KeyAscii As Integer) Text3.Text = KeyAsciiEnd SubPrivate Sub Text3_LostFocus()Text2.Text = Chr(Val(Text3.Text)End Sub1

6、、 KeyPress事件VisualBasic鼠标与键盘事件过程1、 KeyPress事件例例2:假定窗体上有一个文本框(:假定窗体上有一个文本框(Text1),编写了下面的事),编写了下面的事件过程,只允许文本框输入件过程,只允许文本框输入09的数字,而输入的其他字的数字,而输入的其他字符,则响铃,并消除该字符。符,则响铃,并消除该字符。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then Beep KeyAscii = 0 取消该字符 End IfEnd SubVisualBasic鼠标与键盘事件过程例例3

7、:如果窗体级事件过程修改了:如果窗体级事件过程修改了KeyAscii参数的值,则参数的值,则当前激活对象的当前激活对象的KeyPress事件将接收改变后的数据。如事件将接收改变后的数据。如果窗体级事件将果窗体级事件将KeyAscii的值设置为的值设置为0,则不再调用对象,则不再调用对象的的KeyPress事件过程。事件过程。Private Sub Form_KeyPress(KeyAscii As Integer)Print Chr(KeyAscii)If KeyAscii 57 Then Beep KeyAscii = 0 End IfEnd SubVisualBasic鼠标与键盘事件过程2

8、 KeyDown事件和KeyUp事件 (1)事件的触发 当按下任何键的同时触发KeyDown事件;按下抬起时触发KeyUp事件(2)相关对象:与keypress事件相同VisualBasic鼠标与键盘事件过程(3)事件过程)事件过程Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)End Sub或或Private Sub Object_KeyDown(Index As Integer,KeyCode As Integer, Shift As Integer)End Sub注意:过程的形参注意:过程的形参keycode代表

9、键的代码,与代表键的代码,与ASCII码不同,码不同,它直接代表这个某个键。任何键都对应一个它直接代表这个某个键。任何键都对应一个keycodeVisualBasic鼠标与键盘事件过程KeyCode该参数是用户所操作的按键的扫描代码,它告诉该参数是用户所操作的按键的扫描代码,它告诉事件过程用户所操作的物理键。大写字母和小写事件过程用户所操作的物理键。大写字母和小写字母使用同一个键,它们的字母使用同一个键,它们的KeyCode相同。但是相同。但是大键盘(打印机键盘)上的数字键与数字键盘上大键盘(打印机键盘)上的数字键与数字键盘上相同的数字键的相同的数字键的KeyCode是不一样的。对于有上是不一

10、样的。对于有上档字符和下档字符的键,其档字符和下档字符的键,其KeyCode为下档字符为下档字符的的ASCII码。码。Visual Basic中已经把键盘上的功能键定义中已经把键盘上的功能键定义为常量为常量 :vbKeyFx,x是是112中的值中的值 VisualBasic鼠标与键盘事件过程Shift该该参参数数是是一一个个整整数数,用用以以表表示示当当用用户户按按下下键键时时,三三个个转转换换键键Shift、Ctrl和和Alt的的状状态态。这这三三个个键键分分别别以以一一个个二二进进制制位位的的形形式式来来表表示示。当当该该位位为为0时时,表表示示相相应应的的键键没没有有按按下下,当当该该位

11、位为为1时时,表表示示相相应应的键被按下。的键被按下。图9.1.1 Shift参数的各转换键b0b1b2ShiftCtrlAltVisualBasic鼠标与键盘事件过程十进制数二进制数含义0000没有按下转换键1001仅按下Shift键2010仅按下Ctrl键3011按下Ctrl+Shift键4100仅按下Alt键5101按下Alt+Shift键6110按下Alt+Ctrl键7111按下Alt+Ctrl+shift键VisualBasic鼠标与键盘事件过程例Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Key

12、Code = vbKeyF5 And Shift = 4 Then End End IfEnd SubVisualBasic鼠标与键盘事件过程9.2 鼠标事件 MouseDown事件 MouseUp事件 MouseMove事件 VisualBasic鼠标与键盘事件过程(1)相关对象相关对象鼠标事件适用于窗体和大多数控件,包括鼠标事件适用于窗体和大多数控件,包括复选框、命令按钮、单选按钮、框架、列复选框、命令按钮、单选按钮、框架、列表框、文本框、目录框、文件框、图像框、表框、文本框、目录框、文件框、图像框、图片框、滚动条、标签等。图片框、滚动条、标签等。VisualBasic鼠标与键盘事件过程(

13、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 Single)End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)End SubVi

14、sualBasic鼠标与键盘事件过程鼠标位置鼠标位置 鼠标的位置由参数鼠标的位置由参数x,y确定。这里的确定。这里的x、y随鼠标光标在窗体上的移动而变化。当移随鼠标光标在窗体上的移动而变化。当移动到某个位置时,按下鼠标键,则产生动到某个位置时,按下鼠标键,则产生MouseDown事件,如果释放键,则产生事件,如果释放键,则产生MouseUp事件。事件。(x,y)通常是接收鼠标事通常是接收鼠标事件的窗体或控件上的坐标。件的窗体或控件上的坐标。VisualBasic鼠标与键盘事件过程鼠标的键鼠标的键 鼠标键状态由参数鼠标键状态由参数Button来表示。该参数是一个来表示。该参数是一个整数。在表示按

15、键状态时,实际上只使用低三位,整数。在表示按键状态时,实际上只使用低三位,最低位表示左键,右数第二位表示右键,第三位最低位表示左键,右数第二位表示右键,第三位表示中间键,但表示中间键,但Windows鼠标驱动程序不能识别鼠标驱动程序不能识别中间键。中间键。 图9.2.2 Button参数的各位b0b1b2左键右键中间键VisualBasic鼠标与键盘事件过程对于对于MouseDown和和MouseUp事件来说,事件来说,只能用鼠标的按键参数判断是否按下或释只能用鼠标的按键参数判断是否按下或释放某一个键,不能检查两个键被同时按下放某一个键,不能检查两个键被同时按下或释放,因此或释放,因此Butt

16、on参数的值其实只有参数的值其实只有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 Then Print 右键被按下 If Button = 4 Then Print 中间键被按下End SubVisualBasic鼠标与键盘事件过程对于对于MouseMove事件来说,可以通过事件来说,可以通过Button

17、参数判参数判断按下一个或同时按下两个、三个键断按下一个或同时按下两个、三个键 例:判断是否左键和右键被同时按下,而中间键释放例:判断是否左键和右键被同时按下,而中间键释放Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 3 Then Print 同时按下左键和右键,中同时按下左键和右键,中间键释放间键释放End SubVisualBasic鼠标与键盘事件过程 shift参数参数 转换参数(转换参数(Shift)是一个整数值,用来表示)是一个整

18、数值,用来表示Shift、Ctrl和和Alt三个功能键的状态,使用方法与三个功能键的状态,使用方法与KeyDown和和KeyUp键盘事件的键盘事件的Shift参数值完全参数值完全相同相同 VisualBasic鼠标与键盘事件过程 鼠标的光标形状鼠标的光标形状 (1)MousePointer属性属性 鼠标光标的形状通过鼠标光标的形状通过MousePointer属性来设置。该属属性来设置。该属性可以在属性窗口中设置,也可以在程序代码中设置。性可以在属性窗口中设置,也可以在程序代码中设置。 MousePointer属性是一个整数,可以取属性是一个整数,可以取015。(2) 自定义鼠标光标自定义鼠标光

19、标 如果把如果把MousePointer属性设置为属性设置为99,则可以,则可以通过通过MouseIcon属性指出一个光标文件,来定义属性指出一个光标文件,来定义自己的鼠标光标自己的鼠标光标。 VisualBasic鼠标与键盘事件过程例Private Sub Form_Click() Static Static m As Integer m为静态变量 Cls Shift.MousePointer = m Print “鼠标的形状是:; m m = m + 1 If m 15 Then m = 99End SubVisualBasic鼠标与键盘事件过程例 使用鼠标事件编写简单绘图程序 Visua

20、lBasic鼠标与键盘事件过程9.3 鼠标拖放1、拖放的概念、拖放的概念 VB为用户提供使用鼠标将对象从一个位置拖为用户提供使用鼠标将对象从一个位置拖动到另外一个位置,这个过程叫做拖放。动到另外一个位置,这个过程叫做拖放。 拖放的过程是,把鼠标光标移动到一个控件拖放的过程是,把鼠标光标移动到一个控件对象上,按下鼠标键,然后移动鼠标,该对象随对象上,按下鼠标键,然后移动鼠标,该对象随着鼠标移动的而移动,这时如果释放鼠标键,对着鼠标移动的而移动,这时如果释放鼠标键,对象被放在了新的位置。象被放在了新的位置。 通常把原来位置的对象叫做源对象,而拖放后通常把原来位置的对象叫做源对象,而拖放后新位置的对

21、象叫做目标对象。新位置的对象叫做目标对象。 VisualBasic鼠标与键盘事件过程2、相关对象、相关对象 除了菜单、计时器和通用对话框以外,其除了菜单、计时器和通用对话框以外,其他控件都可以在程序运行期间被拖放。他控件都可以在程序运行期间被拖放。VisualBasic鼠标与键盘事件过程3、相关事件和方法(1) 属性 和拖放有关的属性有两个,DragMode和DragIcon。VisualBasic鼠标与键盘事件过程u DragMode属性属性 该属性用来设置自动或手动拖放方式。当其该属性用来设置自动或手动拖放方式。当其值为值为0时,表示采用手动方式;当其值为时,表示采用手动方式;当其值为1时

22、,表时,表示采用自动方式。在默认情况下,该属性值为示采用自动方式。在默认情况下,该属性值为0。 该属性可以在属性窗口中设置,也可以在程序该属性可以在属性窗口中设置,也可以在程序代码中设置。代码中设置。 注意,如果把一个对象的注意,如果把一个对象的DragMode属性设置属性设置为为1,则该对象不再接收,则该对象不再接收Click事件和事件和MouseDown事件。事件。 VisualBasic鼠标与键盘事件过程uDragIcon属性 在拖动对象的过程中,并不是移动对象本身,在拖动对象的过程中,并不是移动对象本身,而是移动代表对象的图标。一旦拖动一个控件,而是移动代表对象的图标。一旦拖动一个控件

23、,它就变成一个图标,等放下后再恢复成原来的控它就变成一个图标,等放下后再恢复成原来的控件。件。DragIcon属性用来设置该图标对应的文件信属性用来设置该图标对应的文件信息。可以在设计和运行时设置此属性。息。可以在设计和运行时设置此属性。VisualBasic鼠标与键盘事件过程(2)拖放事件)拖放事件uDragDrop :当把对象拖到目标之后,如果释放:当把对象拖到目标之后,如果释放鼠标键,则鼠标键,则目标对象目标对象目标对象目标对象会产生一个会产生一个DragDrop事件事件该事件的事件过程格式如下:该事件的事件过程格式如下: Private Sub Object_DragDrop(Sour

24、ce As Control, X As Single, Y As Single) End Sub其中其中其中其中SourceSource是一个对象变量,其类型为是一个对象变量,其类型为是一个对象变量,其类型为是一个对象变量,其类型为ControlControl,参数参数参数参数X,YX,Y是释放鼠标键时光标的位置是释放鼠标键时光标的位置是释放鼠标键时光标的位置是释放鼠标键时光标的位置VisualBasic鼠标与键盘事件过程uDragOver事件:当拖动对象越过某个控件时,被越过的控件产生DragOver事件 格式如下: Private Sub Object _DragOver(Source A

25、s Control, X As Single, Y As Single, State As Integer) End SubVisualBasic鼠标与键盘事件过程四个参数:四个参数:Source参数的含义与前面相同;参数的含义与前面相同;X、Y是拖动时鼠标光标的坐标位置。是拖动时鼠标光标的坐标位置。State参数是一个整数值,有三种不同的取值:参数是一个整数值,有三种不同的取值: 0 鼠标光标正进入目标对象的区域鼠标光标正进入目标对象的区域 1 鼠标光标正退出目标对象的区域鼠标光标正退出目标对象的区域 2 鼠标光标在目标对象的区域之内鼠标光标在目标对象的区域之内VisualBasic鼠标与键

26、盘事件过程(3) 方法方法与拖放有关的方法有与拖放有关的方法有Move和和Drag Drag方法的格式为:方法的格式为: Object.Drag 参数参数参数有三种不同的取值:参数有三种不同的取值:0 取消指定控件的拖放;取消指定控件的拖放;1 当当Drag方法出现在控件的事件过程中时,方法出现在控件的事件过程中时,允许拖放指定的控件;允许拖放指定的控件;2 结束控件的拖放,并发出一个结束控件的拖放,并发出一个DragDrop事事件。件。 VisualBasic鼠标与键盘事件过程Private Sub Picture3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Picture3.drag 1End SubPrivate Sub Picture3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Picture3.drag 2End SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)Source.Move X , Y End SubVisualBasic鼠标与键盘事件过程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号