




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章 鼠标与键盘事件过程,9.1 键盘事件 9.2 鼠标事件 9.3 鼠标拖放,9.1 键盘事件,1 KeyPress事件 2 KeyDown事件与 KeyUp事件,1、 KeyPress事件,(1)事件的触发 当按下键盘上的某些键时,将会产生KeyPress事件。 KeyPress事件只对会产生ASCII码的按键有反应,包括数字、字母、特殊符号、Enter、Backspace、Esc、Tab等。 对于如方向键或功能键这样的不会产生ASCII码的按键,KeyPress事件不会被触发。,1、 KeyPress事件,(2)与此之间相关的对象 该事件可用于窗体、复选框、组合框、命令按钮、列表框、图片框、文本框、滚动条以及与文件有关的控件 如果某个控件拥有输入焦点,当按下某个键时,这个控件的KeyPress事件被触发。 在某一时刻,输入焦点只能位于一个控件上,如果窗体上没有活动的或者可见的控件,则输入焦点位于窗体上,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为与之相关的控件名,1、 KeyPress事件,在默认的情况下,控件的键盘事件优先于窗体的键盘事件,因此在发生键盘事件时,总是先激活拥有焦点的控件的键盘事件。 如果把窗体的KeyPreview属性设置为True,则线触发窗体的键盘事件,再触发具有焦点的控件的键盘事件。否则不能激活窗体的键盘事件,例1:text2中输入字符,text3中显示按键对应的ascii值;如果text3中输入一个整数(ASCII),text2中显示其对应字符 Private Sub Text2_KeyPress(KeyAscii As Integer) Text3.Text = KeyAscii End Sub Private Sub Text3_LostFocus() Text2.Text = Chr(Val(Text3.Text) End Sub,1、 KeyPress事件,1、 KeyPress事件,例2:假定窗体上有一个文本框(Text1),编写了下面的事件过程,只允许文本框输入09的数字,而输入的其他字符,则响铃,并消除该字符。,Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then Beep KeyAscii = 0 取消该字符 End If End Sub,例3:如果窗体级事件过程修改了KeyAscii参数的值,则当前激活对象的KeyPress事件将接收改变后的数据。如果窗体级事件将KeyAscii的值设置为0,则不再调用对象的KeyPress事件过程。,Private Sub Form_KeyPress(KeyAscii As Integer) Print Chr(KeyAscii) If KeyAscii 57 Then Beep KeyAscii = 0 End If End Sub,2 KeyDown事件和KeyUp事件,(1)事件的触发 当按下任何键的同时触发KeyDown事件;按下抬起时触发KeyUp事件 (2)相关对象:与keypress事件相同,(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代表键的代码,与ASCII码不同,它直接代表这个某个键。任何键都对应一个keycode,KeyCode 该参数是用户所操作的按键的扫描代码,它告诉事件过程用户所操作的物理键。大写字母和小写字母使用同一个键,它们的KeyCode相同。但是大键盘(打印机键盘)上的数字键与数字键盘上相同的数字键的KeyCode是不一样的。对于有上档字符和下档字符的键,其KeyCode为下档字符的ASCII码。 Visual Basic中已经把键盘上的功能键定义为常量 :vbKeyFx,x是112中的值,Shift 该参数是一个整数,用以表示当用户按下键时,三个转换键Shift、Ctrl和Alt的状态。这三个键分别以一个二进制位的形式来表示。当该位为0时,表示相应的键没有按下,当该位为1时,表示相应的键被按下。,例 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF5 And Shift = 4 Then End End If End Sub,9.2 鼠标事件,MouseDown事件 MouseUp事件 MouseMove事件,(1)相关对象 鼠标事件适用于窗体和大多数控件,包括复选框、命令按钮、单选按钮、框架、列表框、文本框、目录框、文件框、图像框、图片框、滚动条、标签等。,(2)事件过程,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private 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 Sub,鼠标位置 鼠标的位置由参数x,y确定。这里的x、y随鼠标光标在窗体上的移动而变化。当移动到某个位置时,按下鼠标键,则产生MouseDown事件,如果释放键,则产生MouseUp事件。(x,y)通常是接收鼠标事件的窗体或控件上的坐标。,鼠标的键 鼠标键状态由参数Button来表示。该参数是一个整数。在表示按键状态时,实际上只使用低三位,最低位表示左键,右数第二位表示右键,第三位表示中间键,但Windows鼠标驱动程序不能识别中间键。,对于MouseDown和MouseUp事件来说,只能用鼠标的按键参数判断是否按下或释放某一个键,不能检查两个键被同时按下或释放,因此Button参数的值其实只有3种,即1、2和4。,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 Sub,对于MouseMove事件来说,可以通过Button参数判断按下一个或同时按下两个、三个键 例:判断是否左键和右键被同时按下,而中间键释放 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 3 Then Print “同时按下左键和右键,中间键释放“ End Sub,shift参数 转换参数(Shift)是一个整数值,用来表示Shift、Ctrl和Alt三个功能键的状态,使用方法与KeyDown和KeyUp键盘事件的Shift参数值完全相同,鼠标的光标形状 (1)MousePointer属性 鼠标光标的形状通过MousePointer属性来设置。该属性可以在属性窗口中设置,也可以在程序代码中设置。 MousePointer属性是一个整数,可以取015。 (2) 自定义鼠标光标 如果把MousePointer属性设置为99,则可以通过MouseIcon属性指出一个光标文件,来定义自己的鼠标光标。,例 Private Sub Form_Click() Static m As Integer m为静态变量 Cls Shift.MousePointer = m Print “鼠标的形状是:“; m m = m + 1 If m 15 Then m = 99 End Sub,例 使用鼠标事件编写简单绘图程序,9.3 鼠标拖放,1、拖放的概念 VB为用户提供使用鼠标将对象从一个位置拖动到另外一个位置,这个过程叫做拖放。 拖放的过程是,把鼠标光标移动到一个控件对象上,按下鼠标键,然后移动鼠标,该对象随着鼠标移动的而移动,这时如果释放鼠标键,对象被放在了新的位置。 通常把原来位置的对象叫做源对象,而拖放后新位置的对象叫做目标对象。,2、相关对象 除了菜单、计时器和通用对话框以外,其他控件都可以在程序运行期间被拖放。,3、相关事件和方法 (1) 属性 和拖放有关的属性有两个,DragMode和DragIcon。,DragMode属性 该属性用来设置自动或手动拖放方式。当其值为0时,表示采用手动方式;当其值为1时,表示采用自动方式。在默认情况下,该属性值为0。 该属性可以在属性窗口中设置,也可以在程序代码中设置。 注意,如果把一个对象的DragMode属性设置为1,则该对象不再接收Click事件和MouseDown事件。,DragIcon属性 在拖动对象的过程中,并不是移动对象本身,而是移动代表对象的图标。一旦拖动一个控件,它就变成一个图标,等放下后再恢复成原来的控件。DragIcon属性用来设置该图标对应的文件信息。可以在设计和运行时设置此属性。,(2)拖放事件 DragDrop :当把对象拖到目标之后,如果释放鼠标键,则目标对象会产生一个DragDrop事件 该事件的事件过程格式如下: Private Sub Object_DragDrop(Source As Control, X As Single, Y As Single) End Sub 其中Source是一个对象变量,其类型为Control, 参数X,Y是释放鼠标键时光标的位置,DragOver事件:当拖动对象越过某个控件时,被越过的控件产生DragOver事件 格式如下: Private Sub Object _DragOver(Source As Control, X As Single, Y As Single, State As Integer) End Sub,四个参数: Source参数的含义与前面相同; X、Y是拖动时鼠标光标的坐标位置。 State参数是一个整数值,有三种不同的取值: 0 鼠标光标正进入目标对象的区域 1 鼠标光标正退出目标对象的区域 2 鼠标光标在目标对象的区域之内,(3) 方法 与拖放有关的方法有Move和Drag Drag方法的格式为: Object.Drag 参数 参数有三种不同的取值: 0 取消指定控件的拖放; 1 当Drag方法出现在控件的事件过程中时,允许拖放指定的控件; 2 结束控件的拖放,并发出一个DragDrop事件。,Private Sub Picture3_MouseDown(Button As Integer, Shift As Integer, X As Si
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中电建(云浮)新材料有限公司招聘1人年薪20万50万笔试题库历年考点版附带答案详解
- 2025年文化娱乐行业数字化转型与IP价值挖掘研究报告
- 2025年航空航天行业无人机市场应用前景研究报告
- 2025年口腔颌面外科手术风险评估与处理模拟考试答案及解析
- 2025年燃料电池行业燃料电池技术应用前景展望报告
- 2025年出行服务行业出行需求与交通服务研究报告
- 2025年建筑行业绿色建筑设计与可持续建筑发展研究报告
- 2025年环保产业行业环保技术应用案例研究报告
- 2025年化妆护肤行业绿色无害美妆产业发展策略研究报告
- 2025年环保产业行业绿色技术与可持续发展研究报告
- 2024版2025秋贵州黔教版综合实践活动五年级上册全册教案教学设计
- 骨科术后并发肺栓塞护理
- 转作风重实干课件
- 甲状腺课件类型
- 2025年融媒体中心招聘考试笔试试题(60题)含答案
- 单招备考科学方案
- 2025年秋新人教版数学三年级上册全册教学课件
- 社区工作者网格员考试题库及答案
- 快乐主义伦理学课件
- 医美咨询培训课件
- 《工程勘察设计收费标准》(2002年修订本)
评论
0/150
提交评论