版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第17章键盘与鼠标事件
17.1键盘事件
17.2鼠标事件
17.3鼠标光标的形状
17.4拖放上一页下一页目录结束本节
17.1键盘事件
在VB中,对象识别的键盘事件有下列三种:
⑴KeyPress事件:按下并且释放一个会产生ASCII码的键时被触发。
⑵KeyUp事件:按下键盘上任意一个键时被触发。
⑶
KeyDown事件:释放键盘上任意一个键时触发。
1.KeyPress事件
KeyPress事件只对会产生ASCII码的按键有反应,包括数字、大小写的字母、Enter、Esc、Tab
Backspace等。严格地说,当按下某个键时,所触发的是拥有输入焦点(Focus)的那个控件的KeyPress事件。若窗体上没有活动的或可见的控件,则输入焦点位于窗体上。上一页下一页目录结束本节
PrivateSubForm_KeyPress(KeyAsciiAsInteger)……’窗体的事件过程
EndSub
PrivateSubobject_KeyPress([IndexAsInteger,]
KeyAsciiAsInteger)……'窗体上控件的事件过程
EndSub
【格式】
【说明】KeyPress事件带有一个参数,这个参数有两种形式。第一种形式是IndexAsInteger,用于控件数组;第二种形式是KeyAsciiAsInteger,用于单个控件。
为了记录用户的每次击键,先把窗体的KeyPreview设置为True,再编写如下的程序(SaveAll被声明为窗体级字符串变量):
上一页下一页目录结束本节
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
SaveAll=SaveAll+Chr$(KeyAscii)EndSub
注意:在默认情况下,控件的键盘事件优先于窗体的键盘事件。如果希望窗体先接收键盘事件,则必须把窗体的KeyPreview属性设置为True。
2.KeyDown和KeyUp事件
当控制焦点置于某个对象上,同时用户按下键盘中的任一键,便会对相应对象引发KeyDown事件,释放按键便引发相应对象的KeyUp事件。KeyDown和KeyUp事件返回的是被按下或释放的键盘扫描和组合键的状态,即事件返回的是“键”。
KeyDown和KeyUp事件的过程形式如下:上一页下一页目录结束本节
⑴PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)……EndSub
或
PrivateSubForm_KeyUp(KeyCodeAsInteger,ShiftAsInteger)……EndSub
⑵PrivateSubobject_KeyDown([IndexAsInteger,]KeyCodeAsInteger,ShiftAsInteger)……EndSub上一页下一页目录结束本节或
PrivateSubobject_KeyUp([IndexAsInteger,]
KeyCodeAsInteger,ShiftAsInteger)……EndSub
KeyDown和KeyUp事件都有两个参数,即KeyCode和Shift,两个参数的含义如下:
⑴KeyCode
它是用户所操作的那个键的扫描代码,告诉事件过程用户所操作的物理键。也就是说,大写字母与小写字母使用同一个键,它们的KeyCode相同(使用大写字母的ASCII码)。但大键盘上的数字键与数字键盘上相同的数字键的KeyCode是不一样的。对于有上档字符和下档字符的键,它们的KeyCode相同。使用KeyCode为下档字符的ASCII码。上一页下一页目录结束本节
⑵Shift
转换键:它指的是3个转换键的状态,包括Shift、Ctrl和Alt,这3个键分别以二进制形式表示,Shift参数取值,见下表。十进制数
二进制数
作用0000没有按下转换键1001按下一个Shift键2010按下一个Ctrl键3011按下Ctrl+Shift键4100按下Alt键5101按下Alt+Shift键6110按下Alt+Ctrl键7111按下Alt+Ctrl+Shift键上一页下一页目录结束本节17.2鼠标事件
除了常用的单击(Click)和双击(DblClick)事件。鼠标事件还有下列三个事件:
⑴MouseDown事件:当鼠标的任意一个按钮被按下时被触发。
⑵MouseUp事件:当鼠标的任意一个按钮被释放时被触发。
⑶MouseMove事件:当鼠标被移动时被触发。鼠标事件过程如下(以Form对象为例):⑴MouseDown(压下鼠标)事件过程:SubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)……EndSub上一页下一页目录结束本节
⑵MouseUp(松开鼠标)事件过程SubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)……EndSub
⑶MouseMove(移动鼠标)事件过程
SubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,yAsSingle)……EndSub这三个鼠标事件过程具有相同的参数,含义如下:
⑴Button:该参数是一个整数,包含被用户按下或释放的鼠标按钮的值。可以取3个值,1、2、4。分别表示按下鼠标左键、右键、中间键。上一页下一页目录结束本节⑵Shift:表示Shift、Ctrl和Alt键的状态。
⑶x、y:这两个值对应于当前鼠标的位置,采用ScaleMode属性指定的位置。
1.鼠标位置
鼠标位置由参数x、y确定。这里的x、y随鼠标光标在窗体上的移动而变化。(x,y)通常指接收鼠标事件的窗体或控件的坐标。
2.鼠标键
鼠标键状态由参数Button来设定,该参数是一个整数(16位)。在设置按键状态时,实际上只使用了低3位。当按下某个键时,相应的位被置为1,否则为0。上一页下一页目录结束本节【说明】①对于MouseDown和MouseUp事件来说,只能用鼠标的按键参数判断是否按下或松开某一个键,不能检查两个键被同时按下或松开,因此Button参数的取值只有3种,即001(十进制1)、010(十进制2)和100(十进制4)。
②对于MouseMove事件,可以通过Button参数判断按下一个或同时按下两或三个键。
③在判断是否按下多个键时,要注意避免二义性。
④为了提高可读性,可以把3个键定义为符号常量。
3.转换参数(Shift)和按钮参数Button一样,转换参数Shift也是一个整数值,并用其低3位表示Shift、Ctrl和Alt键的状态,某键被按下时一个二进制位被设置。上一页下一页目录结束本节
17.3鼠标光标的形状
2.设置鼠标光标形状
1.MousePointer属性
设置鼠标光标的形状。该属性可以在属性窗口中设置,也可以在程序代码中设置。
MousePointer的属性是一个整数,可以取0~15。
⑴在程序代码中设置MousePointer属性
【格式】对象.MousePointer=设置值
【说明】这里的“对象”可以是复选框、组合框、命令按钮、目录列表框等。
⑵在属性窗口中设置MousePointer属性。上一页下一页目录结束本节
⑶自定义鼠标光标如果把MousePointer属性设置为99,则可通过MouseIcon属性定义自己的鼠标光标。同样有两种方法来设置:在属性窗口中定义和在程序代码设置(用LoadPicture函数)。
⑷鼠标光标形状的使用
注意:鼠标光标的形状在屏幕的任何位置都不会改变。如果设置"Screen.MousePointer=0",则可击活窗体或控件的属性所设定的局部鼠标形状。上一页下一页目录结束本节17.4拖放
与拖放有关的属性、事件和方法:
⑴属性
①DragMode属性该属性用来设置自动或人工(手动)拖放模式。在默认情况下,该属性值为0(人工方式)。它的DragMode属性设置为1后,可以对一个控件执行自动拖放操作,但该对象不再接收Click事件和MouseDown事件。该属性可以在属性窗口中设置,也可以在程序代码中设置。
②DragIcon属性
DragIcon属性含有一个图片或图标的文件名,在拖动时作为控件的图标。上一页下一页目录结束本节
⑵事件
①DragDrop事件当把控件(图标)拖到目标之后,如果松开鼠标键,则产生一个DragDrop事件。【格式】
Sub对象名_DragDrop(SourceAsControl,XAsSingle,YAsSingle)……EndSub
【说明】
该事件过程含有3个参数。其中Source是一个对象变量,其类型为Control,该参数含有被拖动对象的属性。参数X、Y是松开鼠标键放下对象时鼠标光标的位置。上一页下一页目录结束本节
②DragOver事件
DragOver事件用于图标的移动。当拖动对象越过一个控件时,产生DragOver事件。【格式】
Sub对象名_DragOver(SourceAsControl,XAsSingle,YAsSingle,StateAsInteger)……EndSub
【说明】该事件过程有4个参数,其中Source参数的含义同前,X、Y是拖动时鼠标光标的坐标位置。
0—鼠标光标正进入目标对象的区域;
1—鼠标光标正退出目标对象的区域;
2—鼠标光标正位于目标对象的区域之内。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮海战役知识题目与答案
- 计算机初级典型试题及详细答案
- 国家公务员面试试题及解析
- 2026年工程质量监督检查实务考试试卷试题及答案
- 2026年电气安全隐患排查处置考试试卷试题及答案
- 2026年畜牧兽医实验室生物安全管理规范题库及答案
- 2026年餐饮原料索证索票培训考试试卷试题及答案
- 2026年未成年人保护中心社工招聘试题(含答案)
- 弘扬长征精神 争做时代新人-中小学纪念长征胜利90周年红色诵读展演活动方案
- 2026年食品安全管理员企业考试题(含答案)
- 数学小讲师课件
- 监理内部安全培训记录
- 无人机测绘操控员 国家职业技能标准
- 水力发电运行值班员作业指导书
- GJB827B--2020军事设施建设费用定额
- 种植义齿制作技术
- 2025至2030年中国家用美容电器具行业发展监测及投资前景预测报告
- 2025卫生职称疾病控制正高高级职称历年考试试题及答案
- (新教材)2025年秋期人教版一年级上册数学全册核心素养教案(教学反思无内容+二次备课版)
- 汉服妆造培训
- 地产渠道市场培训课件
评论
0/150
提交评论