第6章键盘和鼠标事件_第1页
第6章键盘和鼠标事件_第2页
第6章键盘和鼠标事件_第3页
第6章键盘和鼠标事件_第4页
第6章键盘和鼠标事件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual BasicVisual Basic程序设计教程程序设计教程 1.理解鼠标、键盘事件的触发机制。2.掌握鼠标的MouseDown, MouseMove, MouseUp事件中各参数的含义及编程控制。3. 掌握键盘的KeyDown, KeyPress, KeyUp 事件中各参数的含义及编程控制。4.了解事件驱动的拖放和 OLE 的拖放。本章要求:本章要求:第第6 6章章 键盘与鼠标事件过程键盘与鼠标事件过程本章重点:本章重点:本章难点:本章难点:理解鼠标、键盘事件的触发机制运用理解鼠标、键盘事件的触发机制运用事件驱动的拖放和事件驱动的拖放和 OLE 的拖放的拖放Visual Basi

2、cVisual Basic程序设计教程程序设计教程 在在Visual BasicVisual Basic中,提供中,提供KeyPressKeyPress、KeyDownKeyDown、KeyUpKeyUp三三种键盘事件,窗体和接受键盘输入的控件都识别这三种事件。种键盘事件,窗体和接受键盘输入的控件都识别这三种事件。 KeyPress KeyPress 按下对应某按下对应某ASCII ASCII 字符的键。字符的键。 KeyDownKeyDown 按下键盘的任意键。按下键盘的任意键。 KeyUpKeyUp 释放键盘的任意键只有获得焦点的对象才能释放键盘的任意键只有获得焦点的对象才能够接受键盘事件

3、。够接受键盘事件。 6.1.1 KeyPress 事件事件在按下与在按下与ASCII字符对应的键时将触发字符对应的键时将触发KeyPress 事件。事件。 6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 KeyPress 事件过程的语法格式是:事件过程的语法格式是:其中:其中: 例如,如果希望将文本框中的所有字符都强制转换为大写例如,如果希望将文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写:字符,则可在输入时使用此事件转换大小写:Private Sub Text1_KeyPress (KeyAscii As Integ

4、er) KeyAscii = Asc(Ucase(Chr(KeyAscii)End Sub Object是指窗体或控件对象名,是指窗体或控件对象名,KeyAscii 参数返回对应参数返回对应于于ASCII字符代码的整型数值。字符代码的整型数值。 6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 例例6.1 6.1 通过编程序,在一个文本框(通过编程序,在一个文本框(Text1Text1)中限定只能)中限定只能输入数字、小数点,只能响应输入数字、小数点,只能响应BackSpace BackSpace 键及回车键。键及回车键。Private Sub

5、Text1_KeyPress (KeyAscii As Integer) Select Case KeyAscii Case 48 to 57,46,8,13 Case Else KeyAscii=0 End SelectEnd Sub KeyPress 事件只识别事件只识别 Enter、Tab和和Backspace 键。不能键。不能够检测其它功能键、编辑键和定位键。够检测其它功能键、编辑键和定位键。 6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 当一个对象具有焦点时按下(当一个对象具有焦点时按下(KeyDown) 或松开或松开 ( KeyU

6、p ) 一个键时发生。它们报告键盘本身准确的物理状一个键时发生。它们报告键盘本身准确的物理状态:按下键态:按下键 (KeyDown) 及松开键及松开键 (KeyUp)。 KeyDown和和KeyUp事件能够检测其它功能键、编辑键和定事件能够检测其它功能键、编辑键和定位键。位键。KeyUp 和和 KeyDown 事件过程的语法格式如下:事件过程的语法格式如下:Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)说明:说明:1Key

7、code 参数表示按下的物理键。上档键字符和下档键参数表示按下的物理键。上档键字符和下档键字符也是使用同一键,它们的字符也是使用同一键,它们的Keycode值相同。值相同。 6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 Keycode 参数通过参数通过 ASCII 值或键代码常数来识别键。字值或键代码常数来识别键。字母键的键代码与此字母的大写字符的母键的键代码与此字母的大写字符的 ASCII 值相同。所以值相同。所以 A 和和 a 的的 keycode 都是由都是由 Asc(A) 返回的数值。在下返回的数值。在下例中用例中用 KeyDown

8、事件判断是否按下了事件判断是否按下了 A 键:键:6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 Private Sub Text1_KeyDown(KeyCode As _ Integer, Shift As Integer) If KeyCode = vbKeyA Then MsgBox You pressed the A key.“ End ifEnd SubPrivate Sub Text1_KeyDown(KeyCode As _ Integer, Shift As Integer) If KeyCode = vbKey1 And s

9、hift=1 Then MsgBox You pressed the ! key.“ End ifEnd Sub6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 2shift参数参数shift表示是在该事件发生时响应表示是在该事件发生时响应SHIFT、CTRL 和和 ALT 键键的状态,它是一个整数。其含义与上一节中的状态,它是一个整数。其含义与上一节中MouseMove、MouseDown、MouseUp事件中的事件中的shift参数完全相同。参数完全相同。例如:下例是用例如:下例是用Shift参数判断是否按下了字母的大写形式。参数判断是否按下

10、了字母的大写形式。Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyA And Shift = 1 Then MsgBox “你按了大写字母你按了大写字母A键键. End ifEnd Sub6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 思考题:思考题: 编写一个在文本框(编写一个在文本框(Text1)中操作,能够响应键盘组合)中操作,能够响应键盘组合操作的程序,用户所作的每一步操作都将在标签框(操作的程序,用户所作的每一步操作都将

11、在标签框(Label1)中显示出相关信息。中显示出相关信息。6.1 键盘事件键盘事件Visual BasicVisual Basic程序设计教程程序设计教程 6.2 鼠标事件鼠标事件 大多数控件能够识别鼠标的大多数控件能够识别鼠标的MouseMove、MouseDown和和MouseUp事件,通过响应这些鼠标事件,能在应用程序对鼠事件,通过响应这些鼠标事件,能在应用程序对鼠标位置及状态的变化作出响应操作。标位置及状态的变化作出响应操作。MouseMove 每当鼠标指针移动到屏幕新位置时发生每当鼠标指针移动到屏幕新位置时发生MouseDown 按下任意鼠标键按钮时发生按下任意鼠标键按钮时发生Mo

12、useUp 释放任意鼠标键按钮时发生释放任意鼠标键按钮时发生6.2.1 鼠标事件过程鼠标事件过程Visual BasicVisual Basic程序设计教程程序设计教程 MouseMove、MouseDown、MouseUp三个事件的过程语法三个事件的过程语法格式如下:格式如下:Sub Object_MouseMove(Button As Integer,Shift As Integer,_ X As Single,Y As Single)Sub Object _MouseDown(Button As Integer,Shift As Integer,_ X As Single,Y As Si

13、ngle)Sub Object _MouseUp(Button As Integer,Shift As Integer,_ X As Single,Y As Single) 其中:其中:1Object是可选的一个对象表达式,可以是窗体对象和大多是可选的一个对象表达式,可以是窗体对象和大多数可视控件。数可视控件。2Button参数是表示按下或松开鼠标哪个按钮,参数是表示按下或松开鼠标哪个按钮, 6.2 鼠标事件鼠标事件Visual BasicVisual Basic程序设计教程程序设计教程 参数参数Button值值参数(参数(Button)值值 说明说明vbLeftButton 1左按钮被按下左

14、按钮被按下vbRightButton 2右按钮被按下右按钮被按下vbMiddleButton 4中间按钮被按下中间按钮被按下 6.2 鼠标事件鼠标事件Visual BasicVisual Basic程序设计教程程序设计教程 参数参数Shift值值参数(参数(Shift) 值值 描述描述vbShiftMask 1SHIFT 键被按下键被按下vbCtrlMask 2CTRL 键被按下键被按下vbAltMask 4ALT 键被按下键被按下3通过通过Shift参数表示在参数表示在Button参数指定的按钮被按下或者参数指定的按钮被按下或者被松开的情况下键盘的被松开的情况下键盘的Shift、Ctrl和和

15、Alt键的状态,键的状态, 6.2 鼠标事件鼠标事件Visual BasicVisual Basic程序设计教程程序设计教程 Ctrl、Shift、Alt三键组合使用情况如表三键组合使用情况如表1216.2 鼠标事件鼠标事件Visual BasicVisual Basic程序设计教程程序设计教程 4. 参数参数X、Y X, Y鼠标指针的位置鼠标指针的位置,通过,通过X和和Y参数返回一个指定鼠参数返回一个指定鼠标指针当前位置的数,标指针当前位置的数,X和和Y的值是使用该对象的坐标系统的值是使用该对象的坐标系统表示鼠标指针当前位置。表示鼠标指针当前位置。 注意: 鼠标事件被用来识别和响应各种鼠标状

16、态,并把这些状态看作独立的事件,在按下鼠标按钮并释放时,Click 事件只能把此过程识别为一个单一的单击操作。鼠标事件能够区分各鼠标按钮及键盘的SHIFT、CTRL、ALT 键的状态。例题:例题:使用使用MouseUp 与与 MouseDown 和和MouseMove 事件,事件,编写一个在窗体上用鼠标绘图的简单程序。编写一个在窗体上用鼠标绘图的简单程序。 6.2 鼠标事件鼠标事件Visual BasicVisual Basic程序设计教程程序设计教程 6.3.1 控件控件 拖拖 放放 (简略介绍,一般不作要求) 在运行时拖动控件,通常情况下并不能自动改变控件位置,这就必须使用Visual B

17、asic的拖放功能,通过编程,才能实现在运行时拖动控件并改变其位置。把按下鼠标按钮并移动控件的操作称为拖动,把释放按钮的操作称为放下。6.3 拖放操作拖放操作Visual BasicVisual Basic程序设计教程程序设计教程 在运行时间拖放鼠标触发DragDrop事件。源和目标:源和目标:l源:源:指被拖放的控件(不包括Menu、Timer、 Line和Shape控件)。l目标:目标:指在其上放置控件的对象,可以是窗体或 控件。注意:注意:执行拖放操作引发的是目标对象目标对象的 DragDrop事件。 Private Sub Form_DragDrop(Source As Control

18、, x As Single,y As Single) Private Sub 对象名对象名_DragDrop(index As Integer,Source As Control,x As Single,y As Single)Visual BasicVisual Basic程序设计教程程序设计教程 index:唯一标识控件数组中的控件。Source:被拖放的控件。x,y:鼠标在目标对象中的位置坐标。过程名中的Form或对象名即为目标对象。(为了在运行时间实现拖动)lDragMode属性: 源控件源控件 DragMode属性设置为1,表示自动模式。(缺省值为0: 手工模式)lDragIcon属性:设置拖放显示的图标。Visual BasicVisual Basic程序设计教程程序设计教程 当用户用鼠标拖动源对象经过目标对象时, 无论鼠标是否释放,都会引发目标对象的 DragOver事件。(源对象的ragMode=1) Private Sub Form_DragOver(Source As Control, x As Single,y As Single,state As Integer)Private Sub 对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论