《Visual Basic程序设计基础》课程教学资源:第九章 键盘与鼠标事件过程

第9章键盘与鼠标事件过程 (2学时 91 Keypress事件 9.2 KeyDown和 KeyUP事件 93鼠标事件 94鼠标光标 9.5拖放
9.1 KeyPress事件 9.2 KeyDown和KeyUP事件 9.3 鼠标事件 9.4 鼠标光标 9.5 拖放 第9章 键盘与鼠标事件过程 (2学时)

91 Keypress事件 Keypress事件的语法如下 Sub Form KeyPress(KeyAscii As Integer) Sub object KeyPress([index As Integer, KeyAscii As Integer) 参数说明 Obec为可以产生 KeyPress事件的对象; Index是一个整数,用来唯 标识一个在控件数组中的控件; KeyAsc用于返回一个标准ANS键的 ASC‖码。 KeyAscil)过引用传递,对它进行改变可给对象发送一个不同的字符, 将 Keyasci改变为0时可取消击键,这样一来对象便接收不到所按 字 关于 KeyPress事件,要特别强调的就是下列两点 KeyAsci参数与后面的 KeyDown和 KeyUp事件中的 KeyCode参数解 释是有区别的。 2)如果 Keypreview属性被设置为True,窗体将先于该窗体上的控件接收 此事件;如果 Keypreview属性被设置为lse,则窗体将不能接收该事 件。 Keypreview的默认值是 False, Key Preview属性可用来创建全局键 盘处理例程
9.1 KeyPress事件 KeyPress事件的语法如下: Sub Form_KeyPress(KeyAscii As Integer) Sub object_KeyPress([index As Integer,] KeyAscii As Integer) 参数说明: Object为可以产生KeyPress事件的对象;Index是一个整数,用来唯一 标识一个在控件数组中的控件;KeyAscii用于返回一个标准ANSI键的 ASCII码。 KeyAscii通过引用传递,对它进行改变可给对象发送一个不同的字符, 将KeyAscii改变为0时可取消击键,这样—来对象便接收不到所按键的 字符。 关于KeyPress事件,要特别强调的就是下列两点: (1) KeyAscii参数与后面的KeyDown和KeyUp事件中的KeyCode参数解 释是有区别的。 (2) 如果KeyPreview属性被设置为True,窗体将先于该窗体上的控件接收 此事件;如果KeyPreview属性被设置为False,则窗体将不能接收该事 件。KeyPreview的默认值是False,KeyPreview属性可用来创建全局键 盘处理例程

例9-1将输入到文本框Text1的文本转换为大写,并将输入的原始 字符显示在Tex2中。程序运行结果如图9-1所示 Option explicit Dim StrI As string Private Sub Textl_KeyPress(Key Ascii As Integer)( stl=Chr( KeyAscii)"蒋按键的ASC值转换为字符 KeyAscii=Asc(UCae(Str1)将字符转换为大写并重置Iex的字符 Iext2.Text=Text2.Text&Strl"将输入的原始字符复制到rext2中 End sub YOU PRESSED A, B, C 请按 You Pressed a,b,c键 例9-1 Key press用法
例9-1 将输入到文本框Text1的文本转换为大写,并将输入的原始 字符显示在Text2中。程序运行结果如图9-1所示。 Option Explicit Dim Str1 As String Private Sub Text1_KeyPress(KeyAscii As Integer) Str1 = Chr(KeyAscii) '将按键的ASCII值转换为字符 KeyAscii = Asc(UCase(Str1)) '将字符转换为大写,并重置Text1的字符 Text2.Text = Text2.Text & Str1 '将输入的原始字符复制到Text2中 End Sub 例9-1 KeyPress的用法

例如,数字的ASC码是在48~57范围,下列事件处理只允许用 户在文本框中输入数字(非数字字符被抑制) Private Sub TextI Keypress(KeyAscii As Integer) If KeyAscii57Then输入为非数字字符 eyAsi=O抑制非数字字符的输入 End if End sub 在该事件处理过程中,就是对数字以外的字符进行拦截,将其 Keyascii参数更改为0,使控件最后接收到的是 Key ascii=0的字 符(空字符但不是空格字符),这样就抑制了那些字符的输入
例如,数字的ASCII码是在48~57范围,下列事件处理只允许用 户在文本框中输入数字(非数字字符被抑制): Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then ' 输入为非数字字符 KeyAscii = 0 ' 抑制非数字字符的输入 End If End Sub 在该事件处理过程中,就是对数字以外的字符进行拦截,将其 KeyAscii参数更改为0,使控件最后接收到的是KeyAscii = 0的字 符(空字符,但不是空格字符),这样就抑制了那些字符的输入

92 Keydown和 KeyUP事件 KeyDown事件过程 Sub Form KeyDown(keycode As Integer, shift As Integer) Sub object Keydown(lindex As Integer, keycode As Integer shift as Integer) Keyup事件过程 Pily Sub Form KeyUp(keycode As Integer, shift As Integer) Sub object KeyUp(lindex As Integer, ]keycode As Integer, 7lnioerily shift as integer 参数说明 Index:是一个整数,它用来唯一标识一个在控件数组中的控件。 KeyCode:是一个键的扫描码,可以用诸如 vbKeyf1(Fl键)的系统常 量表示,它的值只与按键在键盘上的物理位置有关,与键盘的大小写 状态无关;如果按的是两个以上的组合键, Key Code将先后得到所有 这些不同物理位置键的扫描码
9.2 KeyDown和KeyUP事件 KeyDown事件过程 Sub Form_KeyDown(keycode As Integer, shift As Integer) Sub object_KeyDown([index As Integer,]keycode As Integer, shift As Integer) KeyUp事件过程 Sub Form_KeyUp(keycode As Integer, shift As Integer) Sub object_KeyUp([index As Integer,]keycode As Integer, shift As Integer) 参数说明 Index:是一个整数,它用来唯一标识一个在控件数组中的控件。 KeyCode:是一个键的扫描码,可以用诸如vbKeyFl(F1键)的系统常 量表示,它的值只与按键在键盘上的物理位置有关,与键盘的大小写 状态无关;如果按的是两个以上的组合键,KeyCode将先后得到所有 这些不同物理位置键的扫描码

Shit:参数是一个3位二进制的整数 的表达与含义见下面表91。标明在该事件发生时 是否还同时按了 Shift、Ctr和At这 个控制键。Shif参数l 表91shi参数值的表达与含义 常量 十进值(二进值〕 表述 ybShiftmask 1001) Shift键被按下 vbCtrlmask 2010 Ctl键被按下 vbeltmask 4(100) AI键被按下
Shift:参数是一个3位二进制的整数,标明在该事件发生时 是否还同时按了Shift、Ctrl和Alt这三个控制键。 Shift参数 的表达与含义见下面表9-1

Keypress-与 Keydown、 Keyup的区别: KeyPress Keydown和 KeyUp 事件发生的时间 输入一个ASCⅡ字符按任意一个键 参数值 Keyascii接收到 KeyCode接收到 的时字符的ASCI值键的扫描码 按Sht+A时 事件发生一次 事件发生两次 事件发生的次数(只由键状态决定)2位置 (键盘处于大写状态) KeyAscii=97 第一次 KeyCode=17 按Shit+A时参数值 第二次 KeyCode=65 键盘处于小写状态) Keyascii=65第一次 Keycode=17 按 Shift+a时参数值 第二次 Key Code=65
KeyPress KeyDown和KeyUp 事件发生的时间 输入一个ASCII字符 按任意一个键 参数值 KeyAscii接收到 字符的ASCII值 KeyCode接收到 键的扫描码 按Shift+A时 事件发生的次数 事件发生一次 (只由键状态决定) 事件发生两次 和2位置 (键盘处于大写状态) 按Shift+A时参数值 KeyAscii= 97 第一次KeyCode=17 第二次KeyCode=65 (键盘处于小写状态) 按Shift+A时参数值 KeyAscii= 65 第一次KeyCode=17 第二次KeyCode=65 KeyPress与KeyDown、KeyUp的区别:

则先发生这些席体事件接着又发生这些控件事件 窗体的 控件的: 窗体的 Key preview为True Ke Keypress .Ke evpress 焦点在控件上输入 Key down Key down Keyi KeyI 在这里对 KeyAscii 在这里对 KeyAscii 作一点修改将影响 作一点修改只 假定窗体 Key preview为re,并有下面事过程, 所有控件 影响一个 则当在文本框中输入“1”时,实际上得到的是“3 Sub form Keypress(KeyAsciiAsInteger) KeyAscii= KeyAscii+ 1 End sub 窗体 Keypreview为 False时 在文本框中输入“1”时,实际上 Sub TextI Keypress(KeyAsciiAs Integer) 得到的是什么。 KeyAscii= Keyascii+ End sub
窗体的: KeyPress KeyDown KeyUp 控件的: KeyPress KeyDown KeyUp 窗体的KeyPreview为True 焦点在控件上输入 Sub Form_KeyPress(KeyAscii AsInteger) KeyAscii = KeyAscii + 1 End Sub Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub 假定窗体KeyPreview为True,并有下面事件过程, 则当在文本框中输入“1”时,实际上得到的是“3” ?窗体KeyPreview为False时 在文本框中输入“1”时,实际上 得到的是什么。 在这里对KeyAscii 作一点修改将影响 所有控件 在这里对KeyAscii 作一点修改只 影响一个控件 则先发生这些窗体事件 接着又发生这些控件事件

对输入的数据进行验证、限制和修改 (1)修改输入数据,让控件只能接收大写字符 将 Keypreview设置为Tue,并写下列 Form Key Press事件代码 Sub Form Key Press(KeyAscii As Integer) lfKeyAscii>=Asc("a")And KeyAscii 57Then KeyAscii=o End jf.1 End sub
对输入的数据进行验证、限制和修改 (1) 修改输入数据,让控件只能接收大写字符 将KeyPreview设置为True,并写下列Form_KeyPress事件代码: Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii >= Asc("a") And KeyAscii 57 Then KeyAscii = 0 End If End Sub

例9-2 Key Down和 KeyUp的用法。键入Shif键、C键和At 键分别与F2键的组合,用程序在文本框中显示所输入的键组 合情况。 按键控制 You Pressed SHIFT+CTRL +ALT+F2 请按A1t+F2,Ctx1+2, Shift+2组合键 KeyDown和 KeyUP的用法
例9-2 KeyDown和KeyUp的用法。键入Shift键、Ctrl键和Alt 键分别与F2键的组合,用程序在文本框中显示所输入的键组 合情况。 KeyDown和KeyUP的用法
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Visual Basic程序设计基础》课程教学资源:第八章 多重窗体与环境应用.ppt
- 《Visual Basic程序设计基础》课程教学资源:第七章 菜单与对话框.ppt
- 《Visual Basic程序设计基础》课程教学资源:Flags属性(“打开”、“另存为”对 话框).doc
- 《Visual Basic程序设计基础》课程教学资源:第六章 过程.ppt
- 《Visual Basic程序设计基础》课程教学资源:第五章 常用标准控件.ppt
- 《Visual Basic程序设计基础》课程教学资源:第四章 数组与类型.ppt
- 《Visual Basic程序设计基础》课程教学资源:第三章 程序控制结构.ppt
- 《Visual Basic程序设计基础》课程教学资源:第二章 基本数据类型.ppt
- 《Visual Basic程序设计基础》课程教学资源:第一章 集成开发环境和程序设计入门.ppt
- 清华大学:《汇编语言》课程教材PDF电子版(共十七章)Assembly Language.pdf
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第九章 存储过程的创建和使用.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第八章 索引的创建和使用.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第七章 视图的创建和使用.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第六章 Transact-SoL程序设计.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第五章 表中数据的操作.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第四章 表的创建和管理.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第三章 数据库的创建和管理.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第二章 SQL Server2000常用工具.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第一章 SQL Server2000概述.ppt
- 《SQL Server 2000实用教程》教学资源(PPT课件讲稿)第十四章 SQL Server数据转换.ppt
- 《Visual Basic程序设计基础》课程教学资源:第九章 键盘与鼠标事件过程jhb.ppt
- 《Visual Basic程序设计基础》课程教学资源:第十章 文件.ppt
- 《Visual Basic程序设计基础》课程教学资源:第十章 文件.ppt
- 《Visual Basic程序设计基础》课程教学资源:期末考试题A卷.doc
- 《Visual Basic程序设计基础》课程教学资源:VB试题三.doc
- 《Visual Basic程序设计基础》课程教学资源:VB试题二.doc
- 《Visual Basic程序设计基础》课程教学资源:VB试题四.doc
- 《Visual Basic程序设计基础》课程教学资源:2005年9月全国计算机等级考试二级VB笔试试卷(含参考答案).doc
- 《Visual Basic程序设计基础》课程教学资源:习题1 集成开发环境和程序设计入门.doc
- 数据结构库VC实践实例_树与二叉树答案说明.doc
- 数据结构库VC实践实例_迷宫求解参考答案.doc
- 数据结构算法演示(Windows版)使用手册.doc
- 山东科技大学:程序设计基础(C语言课件)_第10章_指针.ppt
- 山东科技大学:程序设计基础(C语言课件)_第11章 结构体.ppt
- 山东科技大学:程序设计基础(C语言课件)_第13章 文件.ppt
- 山东科技大学:程序设计基础(C语言课件)_第1章 C语言概述.ppt
- 山东科技大学:程序设计基础(C语言课件)_第2章 程序的灵魂——算法.ppt
- 山东科技大学:程序设计基础(C语言课件)_第3章 数据类型.ppt
- 山东科技大学:程序设计基础(C语言课件)_第4章 简单程序.ppt
- 山东科技大学:程序设计基础(C语言课件)_第5章 表达式与选择结构程序设计.ppt