第9章 响应键盘与鼠标事件
VB编程中的键盘和鼠标知识总结!

VB编程中的键盘和鼠标知识总结!大家好,今天我们来学习VB编程中的键盘与鼠标知识。
读书改变命运,这个理论在当今社会仍然适用。
并且越喜欢读书学习的人,越有更多机会去选择自己想要的生活。
不要惧怕读书的苦,这是你通向美好未来最好的路,共同努力!VB中的键盘与鼠标事件KeyPress事件KeyPress事件简介在窗体上画一个控件(指可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从'过程'框中选取KeyPress,即可定义KeyPress事件过程。
一般格式为:Private Sub Text1_KeyPress(KeyAscii As Integer)'用户按下并释放一个能产生ASCII码的键时被触发End SubKeyPress事件带有一个参数,这个参数有两种形式:第1种形式是Index As Integer,只用于控件数组;第2种形式是KeyAscii As Integer,用于单个控件。
KeyDown和KeyUp事件KeyDown和KeyUp事件简介KeyDown和KeyUp事件的参数也有两种形式,其中Index As Integer只用于控件数组,而KeyCode As Integer,Shift As Integer用于单个控件。
KeyDown和KeyUp事件都有两个参数,即KeyCode和Shift。
①KeyCode是按键的实际ASCII码。
该码以'键'为准,而不是以'字符'为准。
②Shift转换键。
它指的是3个转换键的状态,包括Shift,Ctrl和Alt键,这3个键分别以二进制数形式表示,每个键有3位,即Shift 键为001,Ctrl键为010,Alt键为100。
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)'用户按下任一个键时被触发End SubPrivate Sub Command1_KeyUp(KeyCode As Integer, Shift As Integer)'用户释放任一个键时被触发End Sub鼠标事件鼠标事件简介为了实现鼠标操作,Visual Basic中提供了以下3个事件过程。
JavaScript教程第九章 事件驱动编程

{ alert("您好!"); }
hello_button.onclick = hello; //动态绑定
2021/4/15
中山大学计算机科学系
9
9.2.4 绑定多个事件处理函数
一、attachEvent( ) 方法
元素对象的 attachEvent( ) 方法:
object.attachEvent(event_name, function_handler)
onkeydown:键按下事件 onkeyup:键弹起事件 onkeypress:按键事件
事件顺序
当点击一次字符键时,依次触发 onkeydown、 onkeypress、onkeyup 事件。若按下不放,则持续触发 onkeydown 和 onkeypress 事件
当点击一次非字符键(如 Ctrl 键)时,依次触发 onkeydown、onkeyup 事件。若按下不放,则持续触发 onkeydown 事件
第九章 事件驱动编程
介绍 JavaScript 事件驱动编程的概念和技术, 以及常用事件的基本使用方法
基本概念 事件绑定 使用事件对象 处理鼠标事件 处理键盘事件 处理表单事件 处理编辑事件 处理异常
2021/4/15
中山大学计算机科学系
1
9.1 基本概念
一、事件 事件是指可以被浏览器识别的、发生在页面上的 用户动作或状态变化。其中:
2021/4/15
中山大学计算机科学系
22
9.5.2 识别键盘按键
在键盘事件处理函数中,使用 Event 对象的 keyCode 属性可以识别用户按下哪个键盘键,该属 性值等于用户按下的键盘键对应的 Unicode 键码值 例9.13 显示用户键入的字符
键盘与鼠标事件过程

MouseDown:鼠标按下时发生旳事件。
MouseUp:鼠标抬起时发生旳事件。
MouseMove:鼠标移动时发生旳事件,对某控
件旳此事件进行编程,则当鼠标移过此控件时就
会触发此事件,执行其相应代码。
21
10.3 响应鼠标事件
鼠标事件旳发生顺序是: (1)首先发生旳是MouseMove事件,当鼠标移动时,
转换键,指旳是三个转换键旳状态,涉及Shift、Ctrl和Alt,这三 个键分别以二进制形式表达,每个键有三位,Shift键为001,Ctrl 键为010,Alt键为100; 例P255 例10.2 例10.3
18
习题
3. 在窗体上画1个文本框,其名称为Text1,然后编写如下过程: Private Sub Text1_KeyDown (KeyCode As Integer ,Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Text1_KeyUp(KeyCode As Integer,Shift As Integer) Print Chr(KeyCode+2) End Sub
经过该参数判断顾客是否按下了Shift、Ctrl或Alt键。例如: If Shift = vbShiftMask Then If Shift = vbCtrlMask Then If Shift = vbAlttMask Then If (Shift = vbAltMask) And (Key Code= VbKeyA) Then
阐明:在键盘上按下一种键总是会触发KeyDown事件、KeyUp事件和KeyPress 事件。
19
习题
4. 在窗体上画1个命令按钮和1个文本框,其名称分别为 Command1和Text1,然后编写如下代码:
键盘和鼠标事件

例如:直接按光标键时移动图片的位置,按 下Shift键再按光标键时放缩图片,按 Shift+Ctrl键时复位图片的位置及大小。 将窗体的KeyPreview属性设置为True Image1的Strech属性设置为True.
Private Sub Form_Load() Label1.Caption = "直接按光标键移动图片,按下 Shift键再按光标键放缩图片,按Shift+Ctrl键复 位图片。" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 3 Then Image1.Move 2000, 1000, 1000, 1000 '复位图 片 End If
KeyPress事件中得到的是按键对应的字符 的ASCII码(KeyAscii) KeyUp,KeyDown事件中得到的是按键对应 的键号(KeyCode),键盘104个键都对应着 唯一的键号。
KeyPress事件 对象的KeyPress事件过程的一般格式为:
Privat Sub Object_KeyPress(KeyAscii As Integer)
Function ShiftStatus(Shift As Integer) As String Select Case Shift Case 0: s = "" Case 1: s = “Shift+" Case 2: s = "Ctrl+" Case 3: s = "Shift+Ctrl+" Case 4: s = "Alt+" Case 5: s = "Shift+Alt+" Case 6: s = "Ctrl+Alt+" Case 7: s = "Shift+Ctrl+Alt+" End Select ShiftStatus = s End Function
第9章 键盘与鼠标事件过程

例9-1 KeyPress的用法
例如,数字的ASCII码是在48~57范围,下列事件处理只允许用 户在文本框中输入数字(非数字字符被抑制): Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then ' 输入为非数字字符 KeyAscii = 0 ' 抑制非数字字符的输入 End If End Sub 在该事件处理过程中,就是对数字以外的字符进行拦截,将其 KeyAscii参数更改为0,使控件最后接收到的是KeyAscii = 0的字 符(空字符,但不是空格字符),这样就抑制了那些字符的输入.
参数说明
Index:是一个整数,它用来唯一标识一个在控件数组中的控件. : KeyCode:是一个键的扫描码,可以用诸如vbKeyFl(F1键)的系统常 : 量表示,它的值只与按键在键盘上的物理位置有关,与键盘的大小写 状态无关;如果按的是两个以上的组合键,KeyCode将先后得到所有 这些不同物理位置键的扫描码.
参数: (1) Button参数:描述所按下的鼠标键是哪一个. 参数 ①使用二进制值: B2 B1 B0 使用二进制值 B0为1:表示按下了鼠标左键 B1为1:表示按下了鼠标右键 B2为1:表示按下了鼠标中键 例如:Button为2(=010B),即B1 为1,表示按下了右键; 如果按了鼠标左键,则Button为1(=001B).
if Shfit = vbAltMask And Button = 1 Then … … ' 这是 这是仅按住Alt健且左击鼠标后应执行的代码 且 后应执行的代码
(3)X,Y:鼠标的当前位置坐标值. ) , : 例9-3 MouseMove事件及其参数的演示.在窗体上移 动鼠标时,文本框Text1和Text2中分别显示鼠标相对 于窗体的实时位置坐标;在图片框P1中移动鼠标时, 文本框Text1和Text2中则分别显示鼠标相对于图片框 的实时位置坐标. 下图所示,是程序运行时鼠标在窗体左边界上移动的 某瞬间的情景.
键盘与鼠标操作

第八章键盘与鼠标操作 (2w)程序在运行过程中,经常需要知道用户对键盘和鼠标的具体操作,例如用户按下键盘上的“A”键时是想输入字符“A”还是输入“a”呢,当用户利用鼠标选中“删除”时是想彻底删除还是想放入回收站呢等等,以便于根据不同的情况,执行不同的具体操作。
为此Visual Basic专门定义了和键盘与鼠标有关的事件和方法。
8-1键盘操作当我们敲击一下键盘上的某个按键时,将会先后触发对应对象的KeyDown、KeyPress、(对于文本框之类的对象还会触发Change)、KeyUp等一系列事件。
根据不同的具体应用,我们可以选择不同的事件进行编程。
需要说明的是,对键盘的某个按键进行操作时,触发的是目前具有输入焦点(Focus)对象的事件。
一般情况下窗体对象不响应这些事件,除非满足下面几个条件:1.目前窗体上没有添加任何对象,则窗体接收键盘事件。
2.目前窗体上有对象,但是它们属于下面两种情况:1)这类对象不具有接收焦点的能力,例如:标签、框架、形状(Shape)、Timer、Image等等2)这类对象本来可以接收焦点(例如:文本框),但目前处于Disabled状态。
3.窗体的KeyPreview属性为True。
所谓KeyPreview的属性为True,就是说无论在窗体内的什么控件内利用键盘输入,都需要事先经过窗体进行检查。
其中,前两种情况下只触发窗体的KeyDown、KeyPress、KeyUp事件,第三种情况下将先后触发窗体的KeyDown、控件的KeyDown、窗体的KeyPress、控件的KeyPress、窗体的KeyUp、控件的KeyUp事件。
8-1-1 KeyPress事件KeyPress事件过程的的形式有两种:Private Sub 对象名_KeyPress(KeyAscii As Integer) '用于非控件数组Private Sub 对象名_KeyPress(Index As Integer, KeyAscii As Integer) '用于控件数组其中:KeyAscii的值在本过程中由系统自动提供,就是用户输入字符的ASCII值。
VB教程(第2版) 第9章 鼠标、键盘和OLE

9.1.1 鼠标事件
当在图片框中移动鼠标时,不断地画线和画方块,实现连续画线和方块。 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) '在图片框中移动鼠标 If Button = 1 And C2 = 1 Then Select Case C1 Case 1 Picture1.Line -(X, Y) Case 2 Picture1.Line (X1, Y1)-(X, Y), , BF End Select End If End Sub
9.1.1 鼠标事件
说明: (1)Button表示是哪个鼠标键被按下或释放。用0、1、2三个位表示鼠标 的左、右、中键,每位用0、1表示被按下或释放,三个位的二进制转换成十进 制就是Button的值,如图9.1所示,表9.1列出了按钮与常数值的对应关系。
十进制 0 1 2 3 4 5 6 7
二进制 000 001 010 011 100 101 110 111
图9.4 查看键代码
9.2 键盘事件
2. KeyPress事件 KeyPress事件是当键盘有键按下时触发的。KeyPress事件检测的键有Enter、 Tab、BackSpace以及键盘上的字母、数字和标点符号键,对于其他功能键、编 辑键和定位键,则不作响应。 语法: Private Sub 对象_KeyPress(KeyAscii As Integer) 说明: • 对象:是接受键盘事件的对象,由具有焦点的对象接收。 • KeyAscii:是按键对应的ASCⅡ码值。将keyAscii改为0时可取消本次击键, 这样对象便接收不到按键的字符。
qt实验六鼠标和键盘事件

QKeyEvent. QEvent::WindowActivate - 窗口被激活了。 QEvent::WindowDeactivate - 窗口被停用了。 QEvent::CaptionChange - 窗口部件的标题改变了。 QEvent::IconChange - 窗口部件的图标改变了。 QEvent::ParentFontChange - 父窗口部件的字体改变了。 QEvent::ApplicationFontChange - 默认的应用程序字体改变了。 QEvent::PaletteChange - 窗口部件的调色板改变了。 QEvent::ParentPaletteChange - 父窗口部件的调色板改变了。 QEvent::ApplicationPaletteChange - 默认的应用程序调色板改变了。 QEvent::Clipboard - 剪贴板内容发生改变,QClipboard。 QEvent::SockAct - 套接字触发,通常在 QSocketNotifier 中实现。 QEvent::DragEnter - 一个拖拽进入了一个窗口部件,QDragEnterEvent。 QEvent::DragMove - 一个拖拽正在进行中,QDragMoveEvent。 QEvent::DragLeave - 一个拖拽离开了窗口部件,QDragLeaveEvent。 QEvent::Drop - 一个拖拽完成了,QDropEvent。 QEvent::DragResponse - 在一些平台上 Qt 使用的内部事件。 QEvent::ChildInserted - 对象得到了一个子类,QChildEvent。 QEvent::ChildRemoved - 对象失去了一个子类,QChildEvent。 QEvent::LayoutHint - 窗口部件子类改变了布局属性。 QEvent::ActivateControl - 在一些平台上 Qt 使用的内部事件。 QEvent::DeactivateControl - 在一些平台上 Qt 使用的内部事件。 QEvent::Quit - 保留的。 QEvent::Create - 保留的。 QEvent::Destroy - 保留的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014-2-22
15
9-3 拖放操作
3.响应放下对象操作 源——被拖动的控件,可以是任意支持拖动 操作的对象;目标——能识别DragDrop事件并 且是在其上放控件的对象。 若在某控件范围内释放鼠标按钮,控件成为 目标;若在无控件的窗体区域上,窗体成为目标。 在拖动对象完成后释放鼠标按钮时触发 DragDrop事件。此时,需编写代码实现控件位置 的移动,控件是无法自动移动到新位置的。
2014-2-22 4
9-1-2 KeyDown和KeyUp事件
KeyDown事件和KeyUp事件的KeyCode 参数在输入字符“A”与“a”的返回值相同, 若要区别它们,则要借助于shift键和shift参 数。
KeyDown事件和KeyUp事件可识别标准 键盘上的大多数控制键,包括所有的功能键 F1~F16,编辑键PageUp、PageDown键、 Delete、Insert键等,箭头键→、←、↑、 ↓,数字小键盘上的键。 2014-2-22 5
2014-2-22
8
9-2-1 MouseDown和MouseUp事件
按下鼠标按钮时触发MouseDown事件, 释放鼠标按钮时触发MouseUp事件。 MouseDown事件可以记录按下鼠标按钮 的位置,MouseUp事件记录释放鼠标按钮 的位置。通过结合这两者,可实现画图, 控制控件位置等操作。
2014-2-22
9
9-2-2 MouseMove事件
当鼠标指针在对象上移动时,就会 触发MouseMove事件,Visual Basic 中的大多数对象都能识别该事件。只要 鼠标指针位置发生改变,MouseMove 事件就会被识别.
2014-2-22
10
9-2-2 MouseMove事件
【例9-2】应用鼠标事件实现图片跟随效果。
第 9 章 响应键盘与鼠标事件过程
响应键盘事件 响应鼠标事件 拖放操作
2014-2-22
1
9-1 键盘事件
KeyPress事件 KeyDown事件 KeyUp事件 能够捕捉用户对键盘的所有操作
2014-2-22
2
9-1-1 KeyPress事件
KeyPress事件当按下与ASCII字符相对应的键时触 发, 它只能识别Enter、Tab和Backspace三个控 制键。 例如检测用户在文本框中输入字符时是否按下了回车 键,可以在文本框的KeyPress事件中加入以下代码: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then MsgBox "您按下了回车 键" End Sub
ቤተ መጻሕፍቲ ባይዱ
9-1-3 实例:登陆检测程序
【例9-1】当用户输入了正确的密码时,显示 “密码正确!”,否则提示用户“无效的密码, 请重试!”,若用户连续输入三次错误,则提 示用户“您无权进入系统!”,退出。当用 户完成输入密码后,直接按下回车键或单击 “确定”按钮都可完成检测用户名称和密码 正确与否的操作。
2014-2-22
2014-2-22 16
9-3 拖放操作
【例9-4】应用DragDrop事件实现购物 车。
2014-2-22
17
9-3 拖放操作
【例9-4】应用拖拽事件实现复制效果。
2014-2-22
18
6
9-2 鼠标事件
Visual Basic提供了三种鼠标事件来响应 鼠标的动作: MouseDown─按下鼠标任意按钮时发生; MouseUp-释放鼠标任意按钮时发生; MouseMove-鼠标指针移动到新位置时发生。
2014-2-22
7
9-2 鼠标事件
鼠标事件的参数: Button描述鼠标按钮的状态。1-表示按下 鼠标左键,2-表示按下鼠标右键,3-表示同 时按下鼠标左键和右键(只能由MouseMove 事件识别,MouseDown事件和MouseUp事 件一次只能识别一个按钮),4-按下中间键 Shift描述Shift、Alt和Ctrl键的状态 X,Y由接受鼠标事件的对象的坐标系统所描 述的鼠标指针的位置。
2014-2-22 3
9-1-2 KeyDown和KeyUp事件
KeyDown事件和KeyUp事件提供了最低级的键 盘响应,它可捕捉到一些特殊的、KeyPress事件无 法检测的键或组合键: (1)Shift、Ctrl和Alt键的组合 (2)PageUp和PageDown键 (3)箭头键 (4)区分打字键盘的数值键和数值小键盘的数字键 (5)与菜单命令无关的功能键
2014-2-22
13
9-3 拖放操作
与拖放有关的属性: DragMode启动自动拖动或手动拖动 DragIcon指定拖动时显示的图标 与拖放有关的方法: Drag启动或停止手动拖动
2014-2-22
14
9-3 拖放操作
1.启动自动拖放模式 将控件的DragMode属性设置为“1- Automatic”,在设置好自动拖动后,拖动操 作就一直保持在打开状态. 2.设置拖动图标 若要改变拖动图标,就要设置DragIcon属性。 设置该属性最简单的方法是在属性窗口中,选 定DragIcon属性后,单击“属性”按钮,再 从“加载图标”对话框中选择图片文件。
2014-2-22
11
9-3 拖放操作
DragDrop和DragOver事件 DragMode属性 DragIcon属性 Drag方法
2014-2-22
12
9-3 拖放操作
在对象范围内,按下鼠标按钮并移动鼠标指针 的操作为拖动,释放按钮的操作为放下。 DragDrop在将控件拖动到指定对象上时触发 DragOver在对象上发生拖动操作时触发