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

下载本文档

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

文档简介

第7章键盘和鼠标事件过程,易唐唐,考点分析,1、KeyPress事件(80%)2、KeyDown事件和KeyUp事件(70%)3、鼠标事件(70%),键盘事件,用来处理当按下或释放键盘上某个键时所执行的操作。VB提供了3种键盘事件:KeyPress事件KeyDown事件KeyUp事件,考点01:KeyPress事件,KeyPress事件,是用户在拥有焦点对象上使用键盘完成的一次完整的按键操作所触发的事件。只有数字、字母符号、【Tab】、【Enter】和【Backspace】等按键才会触发KeyPress事件。语法格式:PrivateSub对象名_KeyPress(KeyAsciiAsInteger)语句块EndSub,KeyPress事件,参数说明:1、KeyAscii参数返回所按键对应的ASCII码的整型数值。同一个字母的大小写状态对应的值不同。例:按下“A”键,KeyAscii的值为65,按下“a”键,则KeyAscii的值为97。2、KeyPress事件不能识别按键的状态。即字母大小写无法区分。,例KeyPress事件,要求:利用KeyPress事件对输入值进行限制,只允许输入09的数字。若输入其它字符,则响铃,并消除该字符。Beep响铃KeyAscii=0避免输入的字符在文本框中回显。,考点02:KeyDown和KeyUp事件,KeyDown和KeyUp事件和KeyPress事件接收到的信息不完全一样,它们能检测到KeyPress事件不能检测到的功能键、编辑键和箭头键。1、KeyDown事件是用户在具有焦点的对象上按下任意键盘键的操作。语法格式如下:PrivateSub对象名_KeyDown(KeyCodeAsInteger,ShiftAsInteger)语句块EndSub,KeyDown事件,说明:(1)KeyCode参数,是按键的扫描码(物理码)。字母键的操描码是一样的,都识别成大写字母。但编辑键区的数字键和数据键区的数字键的KeyCode是不一样的。对于双字符键,其KeyCode为下档字符的ASCII码。(2)Shift参数:Shift表示在该事件发生时响应Shift、Ctrl、Atl键的组合状态,它是一个整数。,Shift参数说明,参数Shift值参数(Shift)值描述vbShiftMask1SHIFT键被按下vbCtrlMask2CTRL键被按下vbAltMask4ALT键被按下,Ctrl、Shift、Alt三键组合使用情况,KeyUp事件,是用户在具有焦点的对象上释放任意键盘按键的操作。语法格式:PrivateSub对象名_KeyUp(KeyCodeAsInteger,ShiftAsInteger)语句块EndSub其中各参数同KeyDown事件。,例1KeyDown和KeyUp事件,要求:程序运行后,按下某个键,则在标签上(窗体上)显示此键的扫描码;而松开该键时,标签内的扫描码即被清除。,例:用Shift参数判断是否按下了字母A的大写形式。PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyAAndShift=1ThenMsgBoxYoupressedtheuppercaseAkey.EndifEndSub例如:下例是用Shift参数判断是否按下上档字符。PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKey1Andshift=1ThenMsgBoxYoupressedthe!key.“EndifEndSub,鼠标事件,VB中,提供了5种鼠标事件:Click、DblClicMouseDown(按下鼠标按键事件)MouseUp(释放鼠标按键事件)MouseMove(移动鼠标指针事件)对于后3种事件,系统除了可以识别鼠标操作外,还可以识别出鼠标的位置及状态,且它们的参数相同。,考点03:MouseDown事件,当用户在某个对象上按下任一鼠标按键时发生。格式:PrivateSubObject_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)EndSub参数说明:(1)Button参数是用来标识事件的产生是通过按下哪个鼠标键触发的,返回的是一个整数。,Button参数说明,参数Button值参数(Button)值说明vbLeftButton1左按钮被按下vbRightButton2右按钮被按下vbMiddleButton4中间按钮被按下,MouseDown事件,(2)Shift参数用来确定键盘上的Shift、Ctrl和Alt键的组合状态。具体定义同键盘事件。(3)X、Y,返回鼠标指针当前的位置坐标。,注意:鼠标事件被用来识别和响应各种鼠标状态,并把这些状态看作独立的事件,在按下鼠标按钮并释放时,Click事件只能把此过程识别为一个单一的单击操作。鼠标事件能够区分各鼠标按钮及键盘的SHIFT、CTRL、ALT键的状态。,例:鼠标位置,编写窗体的MouseDown事件过程,用Print方法打印鼠标的位置。PrivateSubForm_MouseDown(Buttonasinteger,Shiftasinteger,Xasinteger,yasinteger)printx,yEndsub,考点04:MouseUp事件,当用户在某个对象上释放鼠标按键时发生。发生在MouseDown事件之后。格式如下:PrivateSubObject_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)EndSub其中各参数的作用与MouseDown事件过程中一样。,例:MouseUp事件P152,编写窗体的MouseUp事件过程,用Move方法把控件移动到鼠标指向的位置处。PrivateSubForm_MouseUp(Buttonasinteger,Shiftasinteger,Xasinteger,yasinteger)command1.movex,yEndsub,例:MouseDown和MouseUp事件,例7-6利用鼠标指针在窗体上画图。P153DimpaintnowAsBooleanPrivateSubForm_Load()DrawWidth=2ForeColor=RGB(0,0,255)EndSubPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)paintnow=TrueEndSubPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfpaintnowThenPSet(X,Y),vbRedEndIfEndSubPrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)paintnow=FalseEndSub,考点05:MouseMove事件,当用户在具体对象的边框内移动鼠标指针时触发该对象的MouseMove事件。格式如下:PrivateSubObject_MouseMove(Buttonasinteger,Shiftasinteger,xasinteger,yasinteger)EndSub参数同MouseDown和MouseUp事件。注:为了避免混乱,最好不要在一个程序中为一个对象设计多个鼠标事件。,例,用MouseMove事件,在窗体中把控件“拖着”走。PrivateSubForm_MouseMove(Buttonasinteger,Shiftasinteger,Xasinteger,yasinteger)command1.movex,yEndsub,考点06:MousePointer属性,鼠标指针,又称鼠标光标,默认情况下是箭头的形状。当把MousePointer的属性值设为99,就可用MouseIcon属性为鼠标设置其他自定义的光标形状。此时,若未设MouseIcon属性,则还会默认使用箭头光标。考点07:设置鼠标光标形状的方法:1.属性窗口设置2.使用代码设置,考点08:拖放,与拖放有关的属性、方法和事件1、属性DragMode:设置拖动模式1-自动方式0-手动方式DragIcon:指定在拖放操作中指针显示的图标。也可运行时用LoadPicture函数来赋值。2、拖放事件(1)DragDrop事件(2)DragOver事件,DragDrop事件,在一个完整的拖放过程(即将一个源控件拖动到一个目标对象上,并释放鼠标按钮)完成后发生。格式如下:PrivateSub对象_DragDrop(SourceasControl,XasSingle,YasSingle).Endsub说明:(1)其中,Source表示正在被拖动的源控件,可用TypeOf确定其类型。(2)X,Y返回鼠标指针当前的位置。,DragOver事件,用于图标的移动,当拖动对象越过一个控件时被触发。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。功能:可用来确定在拖动开始后和控件放在目标上之前发生了些什么,格式如下:PrivateSub对象_DragOver(SourceasControl,XasSingle,YasSingle,StateasInteger).Endsub,DragOver事件,说明:其中State是一个整数,表明一个控件在拖动过程中的转变状态。State为0,表示进入,即源控件正被向一个目标范围内拖动;State为1,表示离去,即源控件正被向一个目标范围外拖动;State为2,表示跨越,即源控件在目标范围内从一个位置移到了另一位置;注:其余参数的用法,参见DragDrop的事件过程。,Drag方法,该方法用来手工启动、结束或取消一个拖放过程。不管DragMode如何设置。格式:object.Dragaction说明:其中,action为整数,取0表示取消;取1表示拖放开始;取2表示结束拖放。例text1的MouseDown事件中,设置开始拖放。,考点09:OLE拖放,OLE拖放是指将数据从一个控件或应用程序移动到另一个控件或应用程序。考点11:手动拖放实现方法:(1)在MouseDown事件过程中使用Drag方法启动拖放操作;(2)在MouseUp事件过程中使用Drag方法结束或取消拖放操作;(3)如果Drag方法的action参数设为2,会触发DragDrop事件;(4)在DragDrop事件过程中,编写代码来控制拖放操作完成时会发生的情况,如用Move方法移动控件。,例1,以下说法正确的是()A.当焦点在某个控件身上时,按下一个字母键,就会执行该控件的KeyPress事件过程,控件数组,控件数组是由一组相同类型的控件组成,使用相同的名称,具有基本相同的属性,执行不同的功能。根据建立的顺序,系统给每个控件元素一个唯一的索引号(Index),即下标,

温馨提示

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

评论

0/150

提交评论