VB鼠标的左键拖动控件到窗体的任意位置.ppt_第1页
VB鼠标的左键拖动控件到窗体的任意位置.ppt_第2页
VB鼠标的左键拖动控件到窗体的任意位置.ppt_第3页
VB鼠标的左键拖动控件到窗体的任意位置.ppt_第4页
VB鼠标的左键拖动控件到窗体的任意位置.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

VB程序设计教程,主讲老师:韩维良,2005.3,第十章,键盘与鼠标 事件过程,第一节 KeyPress事件 针对键盘的事件,主要是以下三种: KeyDown、KeyUp事件:按键的按下/放开事件。 KeyPress事件:按键事件。 用户按下任一键则引发KeyDown事件,松开则引发KeyUp事件。用户按下并释放按键,便引发KeyPress事件。,在用键盘输入的场合,如在文本框中输入信息,KeyPress 事件常用于判断按了什么键,当在键盘上按键时将触发该事件。 每按一次键,拥有输入焦点的控件都会发生这个事件,可以用其检测如输入密码时字符的合法性等。 某一时刻,只有一个控件拥有输入焦点,如果窗体上没有活动的或可见的控件,则输入焦点位于窗体上。,能响应KeyPress事件的控件有:窗体、复选框、组合框、命令按钮、列表框、图片框、文本框、滚动条及与文件有关的控件。 要用法如:对输入的信息进行合法性检测,前面讲过的口令文本框中只允许输入数字字符,输入其它字符则响呤,并取消输入的字符。又如小写换大写。 例如,如果希望将文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写:,Private Sub Text1_KeyPress (KeyAscii As Integer) KeyAscii = Asc(Ucase(Chr(KeyAscii) End Sub,第二节 KeyDown和KeyUP事件 keydown按下事件、keyup弹起事件过程的形式为: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) End Sub,1、Keycode 返回的是用户所按键的ASC码;大小写字母用同一个按键,其ASC码为大写字母的ASC码;单键双字符键中,返回的是其下档字符的ASC码。另外,大键盘上的数字键与小键盘上的数字键不同。 如按下“A”、“a”则返回的Keycode均为65(即&H41)。,2、Shift Shift用于返回用户在按键时,是否按下shift、ctrl或Alt键构成组合状态。,一般情况下,在程序中,通过判断Keycode和Shift两个参数的值,来确定用户按了什么键。 如下:当用户按下某个键时,在标签中显示出对应的字符,当放开按键时,消失。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Label1.Caption = Str(KeyCode) + “-“ + Chr(KeyCode) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Label1.Caption = “ End Sub,对于组合键,对多种可能的情况都要一一判断: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case Shift Case 0 X$ = “按下“ Case 1 X$ = “按下Shift“ Case 2 X$ = “按下Ctrl“ Case 3 X$ = “按下Shift、Ctrl“,Case 4 X$ = “按下Alt“ Case 5 X$ = “按下Shift、Alt“ Case 6 X$ = “按下Ctrl、Alt“ Case 7 X$ = “按下Shift、Ctrl、Alt“ End Select Label1.Caption = X + “-“ + Str(KeyCode) + “-“ + Chr(KeyCode) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Label1.Caption = “ End Sub,第三节 鼠标事件 前面所学的鼠标事件主要是: Click事件:以鼠标左键单击对象时所引发的事件。 另外与此比较相近的还有DblClick事件:以鼠标左键单击对象时所引发的事件。,1、MouseDown事件 将鼠标指针置于对象上,按下某一键时被触发。 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub,2、MouseUp事件 释放所按的键时被触发。 Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub 与MouseDown成对出现(按下了才会有释放),当按下键,则触发MouseDown,当释放键时,触发MouseUp。,3、MouseMove事件 将鼠标指针置于对象上,将鼠标指针移动时被触发。 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub,Button:用来判断按下的是鼠标的哪一个键。 Shift:判断是否按下shift、ctrl或Alt键构成组合状态。 X和Y:返回指针所在的位置。 Button返回的值, Shift的返回值,上面的两个参数表中,各返回值实际上就是三位二进制数的不同组合。 例:鼠标点那儿,对象移动到那儿。 建立一个窗体,上面有一个按钮。 Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.Move X, Y End Sub 类似于射击游戏。,第四节 鼠标指针的形状 鼠标指针的形状用于反映系统当前所处的状态,在Windows系统中,是很重要的环节; 在不同的环境中,显示成不同的形状,便于用户识别。 最基本的如:指向超链接时变成手形。,鼠标指针位于某个对象上时,其形状由对象的MousePointer属性来设置。一般情况下,Windows默认地对不同的控件设置了不同的形状,如窗体上,朝左倾斜的箭头,在文本框中为插入点形状等。 如果要改变默认的形状,则可以通过设置对象的MousePointer属性来实现。,默认情况下是0,由系统设置的默认值决定形状,99时,鼠标指针的形状由MouseIcon属性设置鼠标指针的形状,由用户自行设置。 具体设置时,一方面,可以在属性窗口中设置,还可以在程序代码中设置。 当用户设置特殊的鼠标形状时,需要以Icon图形的形式指定鼠标指针的形状。,第五节 拖 放 在设计 Visual Basic 应用程序时可能经常要在窗体上拖动控件。Visual Basic的拖放功能使用户在程序运行时也能具有这种能力。 拖动是指将鼠标指针指向某个控件,按下左键并移动至目的地后释放,全过程经历MouseDown、MouseMove和MouseUp等三个事件。 为有效地对拖放进行响应,VB提供了两个专门事件。,一、与拖放有关的属性、事件和方法 1、属性 DragMode:设置控件的拖动方式。 0手式拖动 1自动拖动 DragIcon:指定拖动控件时显示的图标。 在拖动的过程中,被拖动的控件本身并没有动,为形象地表示拖动的过程,需要指定一个图标;并控件本身位置的改变必须通过程序代码来设置。,2、事件 为准确地理解拖放,有两个重要术语:源和目标。 源:被拖动的控件。 此控件是 menu、timer、line 或 shape 外的任一对象。 目标:其上放控件的对象。 此对象可为窗体或控件,能识别 DragDrop 事件。,DragDrop:鼠标指针指向源控件,按下左键并移动至目的地后释放时,目标对象将产生DragDrop事件。 事件过程的框架如下: Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) End Sub,source参数: 指被拖动的控件。 X,Y:指拖动的目的地坐标。即拖动到什么位置。,DragOver:在拖动源对象的过程中,目标对象将产生DragOver事件。 Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer) End Sub X,Y:移动过程中,鼠标指针当前所在的位置;移到那儿,X,Y指那儿,State:用于指出源与目标对象的关系。 0源对象正地进入目标对象中。 1源对象正地退出目标对象。 2源对象正位于目标对象中。,3、方法 Drag用于启动或停止手工拖动。与DragMode属性的值无关。 0取消指定控件的拖动操作。 1开始拖动操作,允许拖放指定的控件。 2结束拖动操作。,二、自动拖放 设置自动拖放属性后,即可进行拖放操作,同时可在目标对象的拖放事件中对拖动作出响应。 如:在窗体上有两个图片框Picture1、picture2。 分别设置DragMode、DragIcon属性。 当拖动这两个图片框时,在窗体的DragDrop事件过程中作出响应。,Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Source.Move X, Y End Sub 也可以将DragDrop将改为DragOver,体验DragOver事件的响应。 Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer) Source.Move X, Y End Sub,三、手工拖放 将DragMode设置为0。此时进行拖动,必须借助于MouseDown、MouseUp事件在按下鼠标时,用Drag方法打开拖动开关,释放鼠标时,关闭拖动开关。 Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Pict

温馨提示

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

评论

0/150

提交评论