VB60教程课件 第12章 响应鼠标和键盘事件

合集下载

VB中的键盘事件、鼠标事件、拖放技术

VB中的键盘事件、鼠标事件、拖放技术

VB中的键盘事件、鼠标事件、拖放技术键盘事件:参数是KeyAscii,每次按一下键盘上的一个键,相应的键的Ascii码值都要赋给参数KeyAscii,然后再执行相应的操作KeyPreview:接受键盘事件。

默认情况下,窗体的KeyPreview 属性为False,只有窗体获得焦点才能相应键盘事件;若窗体的KeyPreview属性为True,窗体会在空件之前首先截获键盘事件。

Shift And 7: 取Shift参数的低三位,因为7的二进制数是111,shift参数与111进行按位And运算,得到是按了三个功能键中的哪一个。

命令按钮控件的default属性用于设置默认命令按钮.,设置为true时,按[Enter键]相当于用鼠标单击了该按钮,Cancel属性为True,则Esc键触发按钮的Click事件快捷键的优先级高于键盘事件,鼠标事件:参数X和Y表示鼠标指针的位置Clc:清除图像。

划线函数Line格式:Line (x1, y1) -(x2, y2), [color], [B][F](x1, y1) 可选的。

Single (单精度浮点数),直线或矩形的起点坐标。

(x2, y2) 必选的。

Single (单精度浮点数),直线或矩形的终点坐标。

color 可选的。

Long (长整型数),画线时用的 RGB 颜色,可用RGB函数B 可选的。

如果包括,则利用对角坐标画出矩形。

F 可选的。

如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。

不能不用 B 而用F。

例:Line (0, 0)-(X, Y), vbGreen, BF拖放技术:DragMode属性:0—手动拖放,1—自动拖放DragDrop事件:Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)Source.Move X, YEnd Sub---Source表示拖放的控件,即DragMode属性为1的控件;xy 表示鼠标指针的位置坐标。

Excel中响应键盘事件(VBA)

Excel中响应键盘事件(VBA)

Excel中响应键盘事件(VBA)Excel中响应键盘事件(VBA)作为一名Excel的Vba的"V粉",你应该对Workbook、Worksheet的事件并不陌生,Excel为我们提供了一系列的事件方便我们编程。

但需要注意的是,一些底层的事件响应Excel并未提供给我们,比如MouseMove、Keypress等等,那么就需要我们自行拓展了。

说道Window消息的捕获及处理,大家首先想到的应该是Hook 也就是我们常说的"钩子",但在Vba中使用钩子不是很稳定,容易导致Excel的意外崩溃。

在此之前我开发过响应鼠标滚轮滚动事件的Excel插件,但既然我们选择了一种语言进行Excel的二次开发,我们就没必要再加入Vba 的元素,既然选择了Vba我们就需要在Vba上下工夫。

既然我们放弃了Hook的方式,那还有其他的办法可以解决吗?下面的代码是我的Google搜到的一个老外的解决办法,代码如下:Option ExplicitPrivate Type POINTAPIx As Longy As LongEnd TypePrivate Type MSGhwnd As LongMessage As LongwParam As LonglParam As Longtime As Longpt As POINTAPIEnd TypePrivate Declare Function WaitMessage Lib "user32" () As LongPrivate Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" _(ByRef lpMsg As MSG, ByVal hwnd As Long, _ByVal wMsgFilterMin As Long, _ByVal wMsgFilterMax As Long, _ByVal wRemoveMsg As Long) As LongPrivate Declare Function TranslateMessage Lib "user32" _(ByRef lpMsg As MSG) As LongPrivate Declare Function PostMessage Lib "user32" Alias "PostMessageA" _(ByVal hwnd As Long, _ByVal wMsg As Long, _ByVal wParam As Long, _lParam As Any) As LongPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" _(ByVal lpClassName As String, _ByVal lpWindowName As String) As LongPrivate Const WM_KEYDOWN As Long = &H100Private Const PM_REMOVE As Long = &H1Private Const WM_CHAR As Long = &H102Private bExitLoop As BooleanSub TrackKeyPressInit()Dim msgMessage As MSGDim bCancel As BooleanDim iKeyCode As IntegerDim lXLhwnd As LongOn Error GoTo errHandler:Application.EnableCancelKey = xlErrorHandler'initialize this boolean flag.bExitLoop = False'get the app hwnd.lXLhwnd = FindWindow("XLMAIN", Application.Caption)DoWaitMessage'check for a key press and remove it from the msg queue.If PeekMessage _(msgMessage, lXLhwnd, WM_KEYDOWN, WM_KEYDOWN, PM_REMOVE) Then'strore the virtual key code for later use.iKeyCode = msgMessage.wParam'translate the virtual key code into a char msg.TranslateMessage msgMessagePeekMessage msgMessage, lXLhwnd, WM_CHAR, _WM_CHAR, PM_REMOVE'for some obscure reason, the following'keys are not trapped inside the event handler'so we handle them here.If iKeyCode = vbKeyBack Then SendKeys "{BS}"If iKeyCode = vbKeyReturn Then SendKeys "{ENTER}"'assume the cancel argument is False.bCancel = False'the VBA RaiseEvent statement does not seem to return ByRef arguments'so we call a KeyPress routine rather than a propper event handler.Sheet_KeyPress _ByVal msgMessage.wParam, ByVal iKeyCode, ByVal Selection, bCancel'if the key pressed is allowed post it to the application.If bCancel = False ThenPostMessage _lXLhwnd, msgMessage.Message, msgMessage.wParam, 0End IfEnd IferrHandler:'allow the processing of other msgs.DoEventsLoop Until bExitLoopEnd SubSub StopKeyWatch()'set this boolean flag to exit the above loop.bExitLoop = TrueEnd Sub'\\This example illustrates how to catch worksheet'\\Key strokes in order to prevent entering numeric'\\characters in the Range "A1:D10" .Private Sub Sheet_KeyPress(ByVal KeyAscii As Integer, _ByVal KeyCode As Integer, _ByVal Target As Range, _Cancel As Boolean)Const MSG As String = _"Numeric Characters are not allowed in" & _vbNewLine & "the Range: """Const TITLE As String = "Invalid Entry !"If Not Intersect(Target, Range("A1:D10")) Is Nothing ThenIf Chr(KeyAscii) Like "[0-9]" ThenMsgBox MSG & Range("A1:D10").Address(False, False) _& """ .", vbCritical, TITLECancel = TrueEnd IfEnd IfEnd Sub在上述代码中,代码书写者自行添加了一个循环来不断的捕获、处理消息,来实现对KeyPress消息的处理,对性能有一定的影响。

vb键盘与鼠标事件过程上机指导

vb键盘与鼠标事件过程上机指导

键盘与鼠标事件过程(上机指导)教学要求:掌握键盘事件KeyPress、KeyDown、KeyUp的基本方法;掌握鼠标事件MouseDown、MouseUp、MouseMove的基本方法;能利用键盘事件、鼠标事件进行程序设计。

知识点:各键盘事件的使用方法;各鼠标事件的使用方法。

内容导航:一、键盘事件(一)KeyPress事件该事件在单击键盘时发生。

它可获得按键的KeyAscii码,并不是单击任意一个键都会发生KeyPress事件,该事件只对会产生ASCII码的键有反应。

在窗体上画一个控件(指上面所讲的可以发生KeyPress事件的控件),双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可以定义KeyPress事件过程。

一般格式为:Private Sub Command1_KeyPress(KeyAscii As Integer)… …End Sub(二)KeyDown事件和KeyUp事件当用户按下键盘上的任意一个键,便触发该对象的KeyDown事件,释放按键则触发KeyUp 事件。

由于按下键盘的键往往会立即放开,所以这两个事件的使用差别并不大。

KeyDown事件和KeyUp事件的参数有两种形式,其中Index As Integer只用于控件组,而KeyCode As Integer, Shift As Integer用于单个控件。

二、鼠标事件鼠标事件是由用户操作鼠标而引发的事件。

(一)Click事件用户单击鼠标键时发生,格式如下:Private Sub控件名_Click ( [ index As Integer ] )其中Index用于当控件是控件数组时传递的参数。

(二)DbClick事件用户双击鼠标键时发生,格式如下:Private Sub控件名_DbClick ( [ index As Integer ] )(三)MouseDown事件用户按下鼠标上的任一按钮时,就会引发该事件。

《VB程序设计教程》PPT课件(全)(2024)

《VB程序设计教程》PPT课件(全)(2024)
窗体的方法与事件
详细讲解窗体的常用方法,如显示窗体、隐藏窗体等,以及窗体 的事件,如加载事件、卸载事件等。
窗体的布局与风格
探讨如何合理规划窗体的布局,以及如何通过设置窗体的风格来 美化界面。
18
控件的使用与布局
常用控件介绍
介绍VB中常用的控件,如文本框、标签、按钮、列表框等,以及它们的属性和事件。
2024/1/26
Web应用程序开发
通过可以开发 Web应用程 序。
多媒体应用开发
利用VB可以开发多媒体应用程序,如音频、 视频处理等。
6
02
VB编程基础
2024/1/26
7
数据类型与变量
数值型
Integer、Long、Single、Double等
字符串型
String
2024/1/26
36
THANKS
感谢观看
2024/1/26
37
《VB程序设计教程》 PPT课件(全)
2024/1/26
1
2024/1/26
目录
• VB程序设计概述 • VB编程基础 • VB界面设计 • VB高级编程技术 • 数据库编程技术 • 网络编程技术 • VB程序调试与优化
2
01
VB程序设计概述
2024/1/26
3
VB的发展历史
1991年,微软公司推出Visual Basic 1.0,标志着 VB的诞生。
2024/1/26
套接字编程
使用Winsock控件进行套接字编程, 包括创建套接字、绑定地址和端口、 监听连接、发送和接收数据等步骤。
错误处理与调试
网络通信编程中需要考虑错误处理和 调试问题,如处理网络断开、数据丢 失等异常情况,以及使用日志记录和 调试工具进行问题排查。

VB6.0详细讲义(VB6实用教程-VB6从入门到精通)

VB6.0详细讲义(VB6实用教程-VB6从入门到精通)

第一章 Visual Basic介绍第二章用户界面设计第三章编程的基础(含变量,常量,条件语句,循环语句,自定义变量,自定义过程,对象和类等基础)第四章 Windows 95的新控件Visual Basic的输入输出第五章 Visual Basic的鼠标事件和绘图第六章 Visual Basic的数据库、报表、预览、打印第七章从文件中存取资料第八章发行应用程序第九章使用Windows API和用Visual Basic建立自己的屏幕保护程序第十章创建ActiveX控件第十一章ActiveX文档第十二章用对象链接与嵌入(OLE)扩展Visual Basic第十三章使用资源文件第十四章用Visual Basic建立ActiveX DLL第十五章用Winsock控件进行Internet通信第十六章 Web浏览控件第一章Visual Basic介绍§2 窗体和命令钮介绍一、窗体窗体是Windows的基本组成部分,这也是为什么这个操作系统叫Windows的原因。

它的主要属性除上面介绍的以外,还包括:1,Appearance属性这个属性用来决定控件是否采用三维效果。

2,BorderStyle属性这个属性决定了窗体的边框形式,共有6种属性值。

改变窗体的BordrStyle属性后,窗体在屏幕上没有变化,它只在运行时才变为你所要求的样子。

3,ControlBox属性程序员用来决定采用不采用控制框的属性,仅在程序运行时才有效。

4,Font属性程序员可以改变该窗体上显示信息的字体,它控制着直接在窗体上打印的文本显示。

5,Icon属性这个属性是用户经常要使用的一种属性。

当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定。

为自己的窗体设置该属性时,要控制住自己挑三拣四的冲动。

6,Visible属性该属性决定窗体是否可见。

错误地改变其值是很危险的,窗体会从眼前消失,这种莫名其妙的事情会使用户惊惶失措,所以肩负重任的程序员一定要慎重哟!7,WindowState属性指定窗体在运行时的三种状态:正常、最小化、最大化。

VB6.0详细讲义(VB6实用教程_VB6从入门到精通)

VB6.0详细讲义(VB6实用教程_VB6从入门到精通)

第一章Visual Basic介绍第二章用户界面设计第三章编程的基础(含变量,常量,条件语句,循环语句,自定义变量,自定义过程,对象和类等基础)第四章Windows 95的新控件Visual Basic的输入输出第五章Visual Basic的鼠标事件和绘图第六章Visual Basic的数据库、报表、预览、打印第七章从文件中存取资料第八章发行应用程序第九章使用Windows API和用Visual Basic建立自己的屏幕保护程序第十章创建ActiveX控件第十一章ActiveX文档第十二章用对象链接与嵌入(OLE)扩展Visual Basic第十三章使用资源文件第十四章用Visual Basic建立ActiveX DLL第十五章用Winsock控件进行Internet通信第十六章Web浏览控件第一章Visual Basic介绍§2 窗体和命令钮介绍一、窗体窗体是Windows的基本组成部分,这也是为什么这个操作系统叫Windows的原因。

它的主要属性除上面介绍的以外,还包括:1,Appearance属性这个属性用来决定控件是否采用三维效果。

2,BorderStyle属性这个属性决定了窗体的边框形式,共有6种属性值。

改变窗体的BordrStyle 属性后,窗体在屏幕上没有变化,它只在运行时才变为你所要求的样子。

3,ControlBox属性程序员用来决定采用不采用控制框的属性,仅在程序运行时才有效。

4,Font属性程序员可以改变该窗体上显示信息的字体,它控制着直接在窗体上打印的文本显示。

5,Icon属性这个属性是用户经常要使用的一种属性。

当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定。

为自己的窗体设置该属性时,要控制住自己挑三拣四的冲动。

6,Visible属性该属性决定窗体是否可见。

错误地改变其值是很危险的,窗体会从眼前消失,这种莫名其妙的事情会使用户惊惶失措,所以肩负重任的程序员一定要慎重哟!7,WindowState属性指定窗体在运行时的三种状态:正常、最小化、最大化。

vb6.0ppt教程第12章

vb6.0ppt教程第12章

名 称 下面 是某 公司 人力 资源 部的 认识 数据 库管 理系 统的 员工 管理 程序, 其中 实现 了员 工的 增加、 修改、 删除、 查询 等功 能。
类 型
标 题
其 他 属 性
Jibenziliao
Label1 Label2 Label3 Label4 Label5 Label6 Label7 Label8 Label9 Label10 Label11 Label12 Label13 Label14 Label15 Label16 Label17
1.
Seek方法:用Seek方法可在表中查找于指定索引规则相符的第一个记录,并使之成为当前 记录。 2. Refresh方法:用Refresh方法来激活在设计状态时没有为数据库控件的有关属性赋值或数据 源在运行时被改变。 3. Close方法:`用Close方法关闭指定的数据库、记录集并释放分配给它的资源。 Close方法的语法结构:对象.Close 4. 数据输入方法:这里包括有添加记录(Addnew)、删除记录(Delete)、更新记录 (Update),它们的语法结构为:数据控件.记录集.方法名 增加记录的操作分为三步: ① 调用Addnew方法 ② 给各字段赋值,给字段赋值格式为:RecordSet.field(“字段名”)=值 ③ 调用Update方法,确定所作的添加,将缓冲区的数据写入数据库。 在用Addnew方法添加新记录后,但是还没有用Update方法更新纪录集,就移动到其他记录, 或者关闭记录集,那么这些输入的数据将在没有任何提示的情况下全部丢失。 删除记录的操作也分为三步: ① 定位被删除的记录使之成为当前记录 ② 调用Delete方法 ③ 移动记录指针 更新记录就是要去修改现有记录,使用程序代码修改记录的方法可以分为以下四步: ① 定位要修改的记录,使之成为当前记录 ② 调用Edit方法 ③ 给个字段赋值 ④ 调用Update方法,确定所作的修改。

VB_鼠标、键盘事件和ASCII码表

VB_鼠标、键盘事件和ASCII码表

一、鼠标事件
Cilck:用户单击鼠标键时发生
DbLClick:用户双击鼠标键时发生
MouseDown:用户释放鼠标键时发生
MouseMove:移动鼠标时发生
二、键盘事件
KeyDown:在键按下时触发。

(可获得一个KeyCode值)
KeyUp:在键弹起时触发。

(可获得一个KeyCode值)
KeyPress:在键盘按下再弹起时发生。

(它可获得KeyAscii值)
注:
1、既然有了KeyDown和KeyUp,为什么还要KeyPress事件,我将键盘按下去后,到底是触发了KeyPress事件,还是KeyDown或KeyUp事件?答案是,当我们按了一下键盘后,这三种事件都触发。

2、一般而言,大多数程序并不关心KeyDown事件来确定按下的键,KeyPress事件在触发后,能够获得一个KeyAscii值。

它指键盘上的某个键与计算机ASCII码对应的值,如键“1”,KeyAscii为49;“A”,KeyAscii 为65;“Enter”,KeyAscii为13。

当我们在KeyPress事件中将KeyAscii 的值改为0后,就等于禁止键入。

3、然而并不是所有键盘上的键都有其KeyAscii值,有时,我们程序要判断用户是否按了功能键,可要区别数字小键盘和常规数字键时,那么KeyAscii就无能为力了。

此时可以考虑KEyDown和KeyUp事件,当用户击键后,它们能获得一个唯一的KeyCode值,从而判断用户到底按了键盘上的哪个键。

可以说,键盘上大多数键(Tab、PrintScreen键除外),都有唯一的KeyCode序列号。

常用的 ASCII 码表(0-127)。

VB60速成(图解)教材

VB60速成(图解)教材
Integer 整数
Long 长整型
Single 实数
Double 双精度型
Currency 货币
Date 日期和时间
Object 对象
String 字符串
Variant 可变类型
"组件属性窗口":用来显示组件的属性,并允许我们修改,设定这些属性的值,我们在窗体设计区域的窗体上选中一个组件,以按钮为例,则在"属性窗口"中会列出它的属性,我们可以看到常用的"Name"、"Capition"、"Font"等等属性,试着把"Capition"属性改为"这是一个按钮",然后看看"窗体设计区域"的按钮上显示的文字是不是改变了。

我们首先新建一个标准的EXE工程。添加两个窗体,并把TextBox、Button、Label控件放置在窗体上。各文本框的名称如下表:
好了,侃了这么多关于VB的台前幕后,总之是为想学编程的你树立信心,编程一点都不难,只要你决定了开始,就让我们一起踏上愉快的编程之旅吧。
接下来谈谈怎样学习VB,先说说"看实例学VB6.0"系列教程,它是面向编程初学者的VB入门教程,这个教程的特点是抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,而是采用了每节一个生动有趣的小例子的形式,每个小例子中会涉及到一个或几个VB编程的知识点(可能是控件,也许会是某个函数或编程小技巧),使你快速入门。希望你学完此教程后能达到下述的效果:
屏幕的右边有三个从上到下排列的小窗口,它们分别是:
"VB工程管理器":用来管理开发一个VB程序所需要的各种类型的窗体和模块,如左图是一个工程所包含的东西,窗体是一个程序表现在外面的界面、模块是程序内部使用的代码。

VB6.0教程-从入门到精通PPT课件

VB6.0教程-从入门到精通PPT课件
窗体设计器窗口 简称窗体(Form),
是最终用户看到的软件界面, 应用程序的运行结果、各种 图形、图像、数据等都是通 过窗体或窗体中的控件显示 出来的。
1.2 认识Visual Basic 6.0的工作界面
工程资源管理器窗口 工程是指用于创建一
个应用程序的文件集合。 工程资源管理器窗口
含有建立一个应用程序所需 要的文件清单。
1.3.4 生成可执行文件
生成可执行文件 选择【文件】➢【生成工程1.exe】菜单命令,
将弹出【生成工程】对话框。 在【生成工程】对话框的【保存在】列表框中选
择要生成可执行文件的路径,并在【文件名】输入框中 输入文件名,单击【确定】按钮将生成以【.exe】为后 缀的可执行文件。
关闭工程
以下3种方法均可将工程关闭 1.选择【文件】➢【退出】菜单命令或按快捷键
可以通过工程管理窗口创建、添加或从工程中删除可 编辑文件时,工程管理窗口包含此工程的当前文件的列表
1.3.2 新建、保存工程
新建工程 选择【文件】➢【新建工程】菜单命令,弹出【新建工
程】窗口。
选择需要创建的文件类型,单击【确定】按钮。
1.3.2 新建、保存工程
保存工程 ➊ 选择【文件】➢【保存工程】菜单命令,弹出【文
1.2 认识Visual Basic 6.0的工作界面
对象列表框
属性窗口 属性窗口主要是针对窗属性显示方式
体和控件设置的,在Visual Basic中,窗体和控件被称 为对象。每个对象的特征都 属性列表 可以用一组属性来描述,属 性窗口就是用来设置窗体或 窗体中控件属性的。
当前属性 简单解释
1.2 认识Visual Basic 6.0的工作界面
【Alt+Q】。 2.右击Visual Basic 6.0开发环境的标题栏,选择

鼠标与键盘事件

鼠标与键盘事件

七、键盘事件综合示例
检验输入
接上页
Private Sub Text_month_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ KeyAscii = 0 End If End Sub Private Sub Text_passwd_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If End Sub Private Sub Text_year_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If ‘8代表退格符 End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then MsgBox “按下了回车符" If (Shift And 2) > 1 Then MsgBox “你按下了ctrl键" End Sub
五、keypress事件说明: keypress事件说明: 事件说明
Keypress事件:用于截获在文本框/ 组合框中输入的按键; Sub 控件名_keypress ([index as integer,] keyascii as integer ) 参数:([index as integer ,] keyascii as integer) a. index: 当控件是控件数组中的一个元素时,index代表在数组 是索引值,即下标 b. keyascii: 返回标准的ascii键码 可以用chr(keyascii) 将ascii 转化为相应的字符;或用 =asc(char) 将字符转为ascii码。(用于判定输入是否为某字符) 注意:keypress 事件不是指出所按字符在键盘上的物理位置,而 是传送一个字 符,故它可以判别大小写。 相反,keyup/ keydown能识别的是所按字符在键盘上的物理位置, 则大小写字符的keycode码是一样的。 (若要在keyup/ keydown 中判别字符的大小写,需判定是否为 shift +该键)

VB编程键盘和鼠标事件

VB编程键盘和鼠标事件

VB

序 KeyDown和KeyUp事件分别在压下和松开键盘上的某个

计 键时发生,这两个事件返回的是键盘的直接状态。
——
KeyDown事件过程的定义为:



鼠 Private Sub Form_KeyDown(KeyCode As


Integer, Shift As Integer)

End Sub
设 计
Sub text1_keypress(keyascii as integer)
If keyascii <48 or keyascii > 57 then
——
keyascii=0

Endif
盘 与
End sub

---------------

Private sub text1_change( )




键盘事件总结
VB

事件名
执行 顺序
返回值(带入过程的值)

序 设 计
Keypress(keyascii as integer)
2 Keyascii=字符ASCII值 A=65, a=97
——
Keydown(keycode
键 盘
as integer, shift as integer
1 Keycode=键ASCII值
件 End Sub
Sub Form_MouseUp( Button As Integer, Shift As Integer, X As Single, Y As Single ) End Sub ‘鼠标键弹起

vb中键盘鼠标事件

vb中键盘鼠标事件

第12章键盘与鼠标事件过程Visual Basic应用程序能够响应多种键盘事件和鼠标事件。

例如,窗体、图片框与图像控件都能检测鼠标指针的位置,并可判定其左、右键是否已经按下,还能响应鼠标按钮与Shift、Ctrl或Alt键的各种组合。

利用键盘事件可以编程响应多种键盘操作,也可以解释、处理ASCII字符。

Visual Basic应用程序还支持大多数控件及OLE的拖放功能,可用控件的Drag方法连同某些属性和事件宋实现控件的拖放操作。

OLE的拖放使应用程序的数据交换功能大大增强。

本章将对键盘和鼠标事件进行详细讲解,使读者掌握利用键盘和鼠标进行编程的基本技术。

12.1键盘事件键盘事件是用户与程序之间交互操作中的主要元素之—。

单击鼠标和按下按键都可以触发事件,而且还提供进行数据输入的手段以及在窗口和菜单中移动的基本形式。

键盘事件有三种,即KeyPress、KeyUp和KeyDown事件。

窗体和可接受键盘输入的控件(如文本框TextBox、命令按钮CommandButton、图片框PictureBox、组合框ComboBox 等)都可识别这些事件。

值得注意的是,只有获得焦点的对象才能够接受键盘事件。

对于窗体,只有成为活动窗体并且窗体中的任何控件均未获得焦点时,才会产生窗体的键盘事件。

窗体中任何控件已经获得焦点时,会产生控件的键盘事件。

12.1.1 KeyPress事件当用户按下键盘上的某个键时,将触发KeyPress事件。

该事件可以用于窗体和大部分标准控件,严格来说,当按下某个键时,所触发的是具有输入焦点(FOCUS)的那个控件的KeyPress事件。

在某一时刻,输入焦点只能位于某一个控件上,如果窗体上没有可见或有效的控件,则输入焦点位于窗体上。

当一个控件或窗体拥有输入焦点时,该控件或窗体将接受从键盘上输入的信息。

例如,假定一个文本框拥有输入焦点,则从键盘上输入的任何字符都将在该文本框上回显。

KeyPress事件过程的一般格式是:Private Sub对象名KeyPress(KeyAscii as Integer)事件过程End Sub如果接受KeyPress事件的对象为控件数组,对应的事件过程的格式为:Private Sub 对象名_KeyPress(Index as Integer,KeyAscii AS Integer)事件过程End Sub其中,“Index”是数组元素的下标。

VB程序设计键盘与鼠标事件过程

VB程序设计键盘与鼠标事件过程

VB程序设计键盘与鼠标事件过程11.1 键盘事件在Visual Basic中,窗体和接受键盘输入的控件都能识别这三种键盘事件:一是KeyPress,按下对应某ASCII字符的键;二是KeyDown,按下键盘的任意键;三是KeyUp,释放键盘的任意键。

只有获得焦点的对象才能接受键盘事件。

11.1.1 KeyPress事件当按下某个键时,将触发拥有输入焦点(Focus)的那个控件的KeyPress事件,返回“所按字符”的ASCII码。

语法格式:Sub Object_KeyPress(KeyAscii As Integer)或Sub Object_KeyPress([index As Integer,]KeyAscii As Integer) 说明:1、Object:是指窗体或控件对象名;2、index:一个整数,它用来惟一标识一个控件数组中的控件;3、KeyAscii:是指KeyAscii参数返回对应ASCII字符代码的整型数值;KeyPress事件带有一个参数,这个参数有两种形式。

第一种形式为:Index As Integer,这种形式只用于控件数组;第二种形式为:KeyAscii As Integer,这种形式只用于单个控件。

11.1.2 KeyDown事件和KeyUp事件当按下或松开某个键时,将触发拥有输入焦点(Focus)的那个控件的KeyDown事件或者KeyUp事件,返回键盘的直接状态。

KeyDown事件和KeyUp事件的参数也有两种形式:(1)Index As Integer 只用于控件数组。

(2)KeyCode As Integer,Shift As Integer 用于单个控件,本章只讨论这种形式。

语法格式为:Sub Object_KeyDown(KeyCode As Integer,Shift AsInteger)Sub Object_KeyUp(KeyCode As Integer,Shift As Integer)说明:1.KeyCode参数KeyCode表示按下的物理键,以“键”为准,而不是以“字符”为准。

键盘与鼠标响应-PPT课件

键盘与鼠标响应-PPT课件

VK_BACK VK_TAB VK_RETURN VK_CONTROL VK_PAUSE VK_ESCAPE VK_NEXT VK_HOME VK_RIGHT VK_DOWN VK_A~VK_Z
退格键 制表键 回车键 Ctrl键 Pause键 Esc键 PageDown键 Home键 右箭头键 下箭头键 A~Z键
键盘消息
按键消息
系统按键消息 非系统按键消息
字符消息
系统字符消息 非系统字符消息
按键消息
当用户按下或松开一个键时产生按键消息。 系统按键消息:
使用Alt键与相关输入键产生的消息。由 windows系统内部直接处理,应用程序不必 处理。
WM_SYSKEYDOWN WM_SYSKEYUP
按下系统键 松开系统键
static int nYChar[Y]={0,0,0,0,0};
static int nNumChar[Y]={0,0,0,0,0}; static int nTextStartX[Y]={0,0,0,0,0}; static int nTextStartY[Y]={0,0,0,0,0};
static SIZE size[Y]; static int n=0;
非系统按键消息:
不使用Alt键组合的按键消息,由应用程 序处理,例如:Home,End,上、下、左、右移 动键。
WM_KEYDOWN WM_KEYUP
按下非系统键 松开非系统键
lParam表示的含义常用的有四位:
0~15位:重复计数位。当键一直被按着时, 计算按键次数 29位:标识该键是否与Alt键一同被按下。 30位:标识键的先前状态 31位:标识键被按下还是被松开。 按键消息的wParam包含了识别按下的键 的虚拟码。

VB学习资料__第十二章 响应鼠标和键盘事件

VB学习资料__第十二章 响应鼠标和键盘事件

12.1.1鼠标事件过程M o u s e M o v e、M o u s e D o w n、M o u s e U p三个事件的过程的语法格式如下:S u b O b j e c t_M o u s e M o v e(B u t t o n A s I n t e g e r,S h i f t A s I n t e g e r,_X A s S i n g l e,Y A s S i n g l e)S u b O b j e c t _M o u s e D o w n(B u t t o n A s I n t e g e r,S h i f t A s I n t e g e r,_X A s S i n g l e,Y A s S i n g l e)S u b O b j e c t_M o u s e U p(B u t t o n A s I n t e g e r,S h i f t A s I n t e g e r,_X A sS i n g l e,Y A s S i n g l e)其中:◆O b j e c t是可选的一个对象表达式,可以是窗体对象和大多数可视控件。

◆B u t t o n参数是表示按下或松开鼠标哪个按钮。

图12-1表示了参数B u t t o n的值。

图12-1参数B u t t o n值参数B u t t o n的值对应的功能如表12-1所示。

表12-1参数B u t t o n的说明参数(B u t t o n)值说明v b L e f t B u t t o n1左按钮被按下v b R i g h t B u t t o n2右按钮被按下v b M i d d l e B u t t o n4中间按钮被按下◆通过S h i f t参数表示在B u t t o n参数指定的按钮被按下或者被松开的情况下键盘的S h i f t、C t r l和A l t键的状态,图12-2表示了S h i f t参数的值,C t r l、S h i f t、A l t三键组合使用情况如表12-2所示。

Vb常见事件ppt课件

Vb常见事件ppt课件
如果程序中有在click事件中处理的代码, 则dlbclick事件将永远也不会触发
返回
Gotfocus事件
当对象获得焦点时发生该事件,为获得 焦点,用户可以通过tab切换或单击对象 等操作或在代码中用setfocus方法设置焦 点
只有当控件的enabled和visible属性均设 置为true时,方可接收焦点,才会发生该 事件
如果在 Click事件中有代码,将不触发 Dlbclick事件,因为在两个事件中首先触 发click事件,并屏蔽Dlbclick事件
返回
Dblclick事件
当双击对象是,触发该事件,对于窗体, 当双击禁用控件或窗体的空白区域时, 该事件发生
我的军阀生涯 /0/116/
返回
Checkbox控件
Checkbox控件称为“选择框”或“复选 框”,提供用户多选择,选择该控件后, 显示选定标记√,可以选择一组checkbox 控件中的一个或多个。
如果需要在checkbox后显示文本,则设
置caption属性。Value属性用于确定控件
的状态,1表示选定,0表示未选定,2表
返回
Lostfocus事件
当对象失去焦点时触发该事件,按下tab 键或单击其他对象,当前对象将失去焦 点,在代码中使用setfocus方法也可改变 焦点
返回
Mousemove事件
在对象范围内移动鼠标发生该事件
Mousemove事件随鼠标指针的移动连续 发生,只要鼠标位置在对象的边界范围 内,该对象就连续发生mousemove事件
示禁止
返回
感谢亲观看此幻灯片,此课件部分内容来源于网络, 如有侵权请及时联系我们删除,谢谢配合!
感谢亲观看此幻灯片,此课件部分内容来源于网络, 如有侵权请及时联系我们删除,谢谢配合!

visual-basic-60之事件

visual-basic-60之事件

Next 變數
第 38 頁
Visual Basic 6.0之迴圈
格式2(減值)例子:
i 的運算次序會由10
至1,但相隔3。
Private Sub Form_Activate()
For i = 10 to 1 step -3
變數 print “i = “ ; i 名稱 next i
End Sub
輸出結果會是: i = 10 i=7 i=4 i=1
第 16 頁
Visual Basic 6.0
例題8(續) : 利用屬性判斷圓鈕有否揀選: • 我們可以使用圓鈕的Value,當該圓鈕被點選
時,該圓鈕傳回的Value為True,若未被點選 擇傳回False。 • 舉例:
Private Sub指令按鈕1_Click() If 圓鈕1.Value = True Then MsgBox "你的性別是 男" End If
第6 頁
Visual Basic 6.0
(續例題7) 隨機數之宣告: • 切換至程式編碼視
窗; • 揀選物件為一般; • 揀選程序/動作為宣
告; • 鍵入以下程式碼:
第7 頁
Visual Basic 6.0
隨機數變數名稱
(續例題7) Function 隨機數(ByVal upperbound As Long, ByVal lowerbound As Long) As Long Randomize 隨機數 = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) End Function
第8 頁
Visual Basic 6.0
(續例題7) 指派隨機數數值範圍之語法:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

其中: 其中: 1.Object是可选的一个对象表达式,可以是窗体对象和大多 是可选的一个对象表达式, . 是可选的一个对象表达式 数可视控件。 数可视控件。 2.Button参数是表示按下或松开鼠标哪个按钮, 参数是表示按下或松开鼠标哪个按钮, . 参数是表示按下或松开鼠标哪个按钮 目录 浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
目录
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.1 鼠标事件
在窗体上放置1个 控件, 个 控件, 例12.2 在窗体上放置 个Image控件,1个Picture控件,1 控件 控件 控件, 所示的应用程序, 个Label控件,设计一个如图 控件 设计一个如图12-4所示的应用程序,实现对 所示的应用程序 象的拖放功能。 象的拖放功能。
12.1 鼠标事件
3.通过Shift参数表示在 .通过 参数表示在Button参数指定的按钮被按下 参数指定的按钮被按下 参数表示在 或者被松开的情况下键盘的Shift、Ctrl和Alt键的状态, 键的状态, 或者被松开的情况下键盘的 、 和 键的状态
参数Shift值 值 参数
参数( 参数(Shift) ) vbShiftMask vbCtrlMask vbAltMask 目录 值 1 2 4 描述 SHIFT 键被按下 CTRL 键被按下 ALT 键被按下
Select Case KeyAscii Case 48 to 57,46,8,13 Case Else KeyAscii=0 End Select End Sub KeyPress 事件只识别 Enter、Tab和Backspace 键。不能 、 和 够检测其它功能键、编辑键和定位键。 够检测其它功能键、编辑键和定位键。 目录 浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
目录
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.2 键盘事件
在Visual Basic中,提供 中 提供KeyPress、KeyDown、KeyUp三 、 、 三 种键盘事件,窗体和接受键盘输入的控件都识别这三种事件。 种键盘事件 , 窗体和接受键盘输入的控件都识别这三种事件 。 KeyPress 按下对应某 按下对应某ASCII 字符的键。 字符的键。 KeyDown 按下键盘的任意键。 按下键盘的任意键。 KeyUp 释放键盘的任意键只有获得焦点的对象才能够接 受键盘事件。 受键盘事件。 12.2.1 KeyPress 事件 在按下与ASCII字符对应的键时将触发 字符对应的键时将触发KeyPress 事件。 事件。 在按下与 字符对应的键时将触发
12.1 鼠标事件
12.1.2 拖 放 (简略介绍,一般不作要求) 在运行时拖动控件,通常情况下并不能自动改变控件位置, 在运行时拖动控件,通常情况下并不能自动改变控件位置, 这就必须使用Visual Basic的拖放功能, 通过编程 , 才能实 的拖放功能, 这就必须使用 的拖放功能 通过编程, 现在运行时拖动控件并改变其位置。 现在运行时拖动控件并改变其位置。把按下鼠标按钮并移动 拖动, 放下。 控件的操作称为拖动 把释放按钮的操作称为放下 控件的操作称为拖动,把释放按钮的操作称为放下。
本章重点: 理解鼠标、 本章重点: 理解鼠标、键盘事件的触发机制运用 本章难点: 本章难点: 事件驱动的拖放和 OLE 的拖放
目录 浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.1 鼠标事件
大多数控件能够识别鼠标的MouseMove、 MouseDown和 、 大多数控件能够识别鼠标的 和 MouseUp事件,通过响应这些鼠标事件,能在应用程序对鼠 事件,通过响应这些鼠标事件, 事件 标位置及状态的变化作出响应操作。 标位置及状态的变化作出响应操作。 MouseMove MouseDown MouseUp 每当鼠标指针移动到屏幕新位置时发生 按下任意鼠标键按钮时发生 释放任意鼠标键按钮时发生
Private Sub Text1_KeyPress (KeyAscii As Integer)
KeyAscii = Asc(Ucase(Chr(KeyAscii))) End Sub 目录 浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
Sub Object_MouseMove(Button As Integer,Shift As Integer,_ ( , , X As Single,Y As Single) , ) Sub Object _MouseDown(Button As Integer,Shift As Integer,_ ( , , X As Single,Y As Single) , ) Sub Object _MouseUp(Button As Integer,Shift As Integer,_ ( , , X As Single,Y As Single) , )
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.1 鼠标事件
Ctrl、Shift、Alt三键组合使用情况如表 、 三键组合使用情况如表12.1 、 三键组合使用情况如表
目录
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 ห้องสมุดไป่ตู้2.2 本章作业
12.2 键盘事件
通过编程序,在一个文本框(Text1) 例12.4 通过编程序,在一个文本框(Text1)中限定只能 输入数字、小数点,只能响应BackSpace 键及回车键。 输入数字、小数点,只能响应BackSpace 键及回车键。
Private Sub Text1_KeyPress (KeyAscii As Integer)
12.1 鼠标事件
参数Button值 值 参数
参数( 参数(Button) ) vbLeftButton vbRightButton vbMiddleButton 目录 值 1 2 4 说明 左按钮被按下 右按钮被按下 中间按钮被按下
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.1.1 鼠标事件过程
目录
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.1 鼠标事件
MouseMove、 MouseDown、 MouseUp三个事件的过程的语 、 、 三个事件的过程的语 法格式如下: 法格式如下:
目录
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.2 键盘事件
KeyPress 事件过程的语法格式是: 事件过程的语法格式是: Sub Object_KeyPress (KeyAscii As Integer) 其中: 其中: Object是指窗体或控件对象名,KeyAscii 参数返回对应 是指窗体或控件对象名, 是指窗体或控件对象名 字符代码的整型数值。 于ASCII字符代码的整型数值。 字符代码的整型数值 例如,如果希望将文本框中的所有字符都强制转换为大 例如, 写字符,则可在输入时使用此事件转换大小写: 写字符,则可在输入时使用此事件转换大小写:
目录
浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
12.1 鼠标事件
12.1.3 OLE 拖放 (简略介绍,一般不作要求) 简略介绍,一般不作要求) Visual Basic支持 支持OLE 拖放,使用这种强大且实用的工具, 拖放,使用这种强大且实用的工具, 支持 拖放的应用程序( 可以在其他支持 OLE 拖放的应用程序(如 Windows 资源管 理器、 等等) 理器、Word 和 Excel等等)之间、控件之间拖放数据。 等等 之间、控件之间拖放数据。
第十二章 响应鼠标和键盘事件
本章要求: 本章要求:
1. 理解鼠标、键盘事件的触发机制。 理解鼠标、键盘事件的触发机制。 2. 掌握鼠标的 掌握鼠标的MouseDown, MouseMove, MouseUp , , 事件中各参数的含义及编程控制。 事件中各参数的含义及编程控制。 3. 掌握键盘的 掌握键盘的KeyDown, KeyPress, KeyUp 事件中各 , , 参数的含义及编程控制 4. 了解事件驱动的拖放和 OLE 的拖放。 的拖放。
12.1 鼠标事件
4. 参数 、Y 参数X、 X, Y鼠标指针的位置,通过 和Y参数返回一个指定鼠 鼠标指针的位置, 鼠标指针的位置 通过X和 参数返回一个指定鼠 标指针当前位置的数,X和Y的值是使用该对象的坐标系统 标指针当前位置的数, 和 的值是使用该对象的坐标系统 表示鼠标指针当前位置。 表示鼠标指针当前位置。 注意: 注意: 鼠标事件被用来识别和响应各种鼠标状态,并把这些状 鼠标事件被用来识别和响应各种鼠标状态, 态看作独立的事件,在按下鼠标按钮并释放时, 态看作独立的事件,在按下鼠标按钮并释放时,Click 事件 只能把此过程识别为一个单一的单击操作。 只能把此过程识别为一个单一的单击操作。鼠标事件能够区 分各鼠标按钮及键盘的SHIFT、CTRL、ALT 键的状态。 键的状态。 分各鼠标按钮及键盘的 、 、 使用MouseUp 与 MouseDown 和MouseMove 例12.1 使用 事件,编写一个在窗体上用鼠标绘图的简单程序。 事件,编写一个在窗体上用鼠标绘图的简单程序。 目录 浙江科技学院教信系计算机基础教学网站: 浙江科技学院教信系计算机基础教学网站: 12.1 12.2 本章作业
相关文档
最新文档