vb中的keyup,keypress,keydown事件的区别?

qq_39336686 2017-07-07 10:20:52
vb中的keyup,keypress,keydown事件的区别?
...全文
2305 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个.net用法一样吗?
赵4老师 2017-07-10
  • 打赏
  • 举报
回复
引用 5 楼 sysdzw 的回复:
我进来只是看看赵四老师又复制啥了
你上道了!
zdingyun 2017-07-08
  • 打赏
  • 举报
回复
KeyDown、KeyUp 事件,这些事件是当一个对象具有焦点时按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。(要解释 ANSI 字符,应使用 KeyPress 事件。


KeyDown、KeyUp 事件示例
本例演示一个响应 F2 以及与 ALT,SHIFT 和 CTRL 相联的组合键类属键盘处理程序。键常数列在对象浏览器中的 Visual Basic (VB) 对象库里。要尝试这个例子,可将代码粘贴到一个含 1 个 TextBox 控件的窗体的声明部分,然后按 F5 键和 ALT+F2, SHIFT+F2,和 CTRL+F2 组合键。

Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
Dim ShiftDown, AltDown, CtrlDown, Txt
ShiftDown = (Shift And vbShiftMask) > 0
AltDown = (Shift And vbAltMask) > 0
CtrlDown = (Shift And vbCtrlMask) > 0
If KeyCode = vbKeyF2 Then ' 显示键组合.
If ShiftDown And CtrlDown And AltDown Then
Txt = "SHIFT+CTRL+ALT+F2."
ElseIf ShiftDown And AltDown Then
Txt = "SHIFT+ALT+F2."
ElseIf ShiftDown And CtrlDown Then
Txt = "SHIFT+CTRL+F2."
ElseIf CtrlDown And AltDown Then
Txt = "CTRL+ALT+F2."
ElseIf ShiftDown Then
Txt = "SHIFT+F2."
ElseIf CtrlDown Then
Txt = "CTRL+F2."
ElseIf AltDown Then
Txt = "ALT+F2."
ElseIf SHIFT = 0 Then
Txt = "F2."
End If
Text1.Text = "You pressed " & Txt
End If
End Sub


KeyPress 事件,此事件当用户按下和松开一个 ANSI 键时发生。

KeyPress 事件示例
本例将输入到 TextBox 控件的文本转换为大写。要尝试这个例子,可将代码粘贴到一个包含一个 TextBox 控件窗体的声明部分,然后按 F5 键并在 TextBox 中输入内容。

Private Sub Text1_KeyPress (KeyAscii As Integer)
Char = Chr(KeyAscii)
KeyAscii = Asc(UCase(Char))
End Sub








舉杯邀明月 2017-07-07
  • 打赏
  • 举报
回复
keypress事件只针对“可打印字符键”,是某个字符键已经按下、并且已经有一些“先期处理”之后触发。 keydown事件是键盘上任意键按下时触发(个别“系统级功能”键除外),  并且有一个“按键码”(虚拟键位码)标识是哪个键按下。  大部分键在按下后不放开、延时一定时间后,会持续不断的触发 keydown事件。 keyup事件,跟keydown事件类似,只是是“放开后”触发。  并且“放开”是不可能持续触发的,也就是放开一次就只能触发一次。 keydown、keyup这两个事件,只针对“键”而不是针对“字符”,比如: 1. 你在主键盘区按下数字键1,跟在右边小键盘区按下数字键1,它们的KeyCode是不相等的; 2. 单独按下字符键A,跟“先按下Shift不放、再按字符键A”,   在“字符键A按下后”产生的KeyCode,这两种情况下都是一样的。   
脆皮大雪糕 2017-07-07
  • 打赏
  • 举报
回复
窗体里放一个文本框,然后贴下面代码,然后挨个键按过去,看看立即窗口的输出差异以及显示顺序,立马就明白了


Option Explicit


Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Debug.Print "keydown", KeyCode, Shift
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    Debug.Print "keypress", KeyAscii
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    Debug.Print "keyup", KeyCode, Shift
End Sub
无·法 2017-07-07
  • 打赏
  • 举报
回复
我进来只是看看赵四老师又复制啥了
赵4老师 2017-07-07
  • 打赏
  • 举报
回复
KeyDown、KeyUp 事件 这些事件是当一个对象具有焦点时按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。(要解释 ANSI 字符,应使用 KeyPress 事件。) 语法 Private Sub Form_KeyDown(keycode As Integer, shift As Integer) Private Sub object_KeyDown([index As Integer,]keycode As Integer, shift As Integer) Private Sub Form_KeyUp(keycode As Integer, shift As Integer) Private Sub object_KeyUp([index As Integer,]keycode As Integer, shift As Integer) KeyDown 和 KeyUp 事件包括下列部分: 部分 描述 object 一个对象表达式,其值是“应用于”列表中的一个对象。 index 是一个整数,它用来唯一标识一个在控件数组中的控件。 keycode 是一个键代码,诸如 vbKeyF1 ( F1 键)或 vbKeyHome ( HOME 键)。要指定键代码,可使用对象浏览器中的 Visual Basic ( VB ) 对象库中的常数。 shift 是在该事件发生时响应 SHIFT ,CTRL 和 ALT 键的状态的一个整数。shift 参数是一个位域,它用最少的位响应 SHIFT 键(位 0 )、CTRL 键(位 1 )和 ALT 键(位 2 )。这些位分别对应于值 1、2 和 4。可通过对一些、所有或无位的设置来指明有一些、所有或零个键被按下。例如,如果 CTRL 和 ALT 这两个键都被按下,则 shift 的值为 6。 说明 对于这两个事件来说,带焦点的对象都接收所有击键。一个窗体只有在不具有可视的和有效的控件时才可以获得焦点。虽然 KeyDown 和 KeyUp 事件可应用于大多数键,它们最经常地还是应用于: 扩展的字符键如功能键等。 定位键。 键盘修饰键和按键的组合。 区别数字小键盘和常规数字键。 在需要对按下和松开一个键都响应时,可使用 KeyDown 和 KeyUp 事件过程。 下列情况不能引用 KeyDown 和 KeyUp 事件: 窗体有一个 CommandButton 控件,并且 Default 属性设置为 True 时的 ENTER 键。 窗体有一个 CommandButton 控件,并且 Cancel 属性设置为 True 时的 ESC 键。 TAB 键。 KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:keycode —显示物理的键(将 A 和 a 作为同一个键返回)和 shift —显示 shift + key 键的状态而且返回 A 或 a 其中之一。 如果需要测试 shift 参数,可使用该参数中定义各位的 shift 常数。该常数有下列值: 常数 值 描述 vbShiftMask 1 SHIFT 键的位屏蔽。 VbCtrlMask 2 CTRL 键的位屏蔽。 VbAltMask 4 ALT 键的位屏蔽。 该常数用作位屏蔽。它可被用来测试任何键组合。 测试一个条件时,首先将每个结果分配给一个临时整数变量,然后将 shift 与一个位屏蔽进行对比。如下例,可用 And 运算符和 shift 参数一起来测试条件是否大于 0。该条件说明该修正键被按下: ShiftDown = (Shift And vbShiftMask) > 0 可按此例在一个过程中测试任何条件的组合: If ShiftDown And CtrlDown Then 注意 如果 KeyPreview 属性被设置为 True,则一个窗体先于该窗体上的控件接收到此事件。可用 KeyPreview 属性来创建全局键盘处理例程。
hongss 2017-07-07
  • 打赏
  • 举报
回复
实际上就是一个按键按下时的三个动作分解
of123 2017-07-07
  • 打赏
  • 举报
回复
首先,它们触发的时间顺序是 KeyDown - KeyPress - KeyUp。 其次,事件的参数不同。 KeyPress 只有一个参数 KeyAscii。例如你按下了大写 A 就会返回 65——Asc("A") = 65。也就是说,它只对有 ASCII 编码的键有效。 KeyDown 和 KeyUp 都有两个参数:KeyCode 和 Shift。 KeyCode 是键码,是一个数字。不过 VB 有一些键码常量可帮助到你:vbKeyA, vbKeyW, vbKeyF1, vbKeyPgUp 等等。你可以不用去记它们的数值。 Shift 表示 Ctrl, Shift 和 Alt 有哪个或哪几个按了下去。也有专用的常量: vbShiftMask = 1 vbCtrlMask = 2 vbAltMask = 4 你可以用 (Shit And vbShiftMask) 来检查 Shift 键是否按下。余类推。
Visual Basic 6编程技术大全 是非常详细和深入的Vb6学习教程,无论对初学者还是有经验的开发人员,都非常有帮助 第一部分基础篇1 第1章 VB6入门1 1.1 集成开发环境1 1.1.1 运行IDE1 1.1.2 选择工程类型1 1.1.3 IDE窗口2 1.1.4 菜单5 1.1.5 工具栏6 1.1.6 Toolbox7 1.2 第一个VB应用程序9 1.2.1 向窗体添加代码9 1.2.2 设置控件的属性10 1.2.3 为控件命名12 1.2.4 移动及重新调整控件尺寸13 1.2.5 设置Tab顺序13 1.2.6 添加代码14 1.2.7 运行和调试程序15 1.2.8 优化示例程序16 1.2.9 准备、编译、运行18 第2章关于窗体20 2.1 通用属性20 2.1.1 Left、Top、Width和Height属性21 2.1.2 ForeColor和BackColor属性21 2.1.3 Font属性23 2.1.4 Caption和Text属性24 2.1.5 Parent和Container属性25 2.1.6 Enabled和Visible属性25 2.1.7 hWnd属性26 2.1.8 TabStop和Tablndex属性26 2.1.9 MousePointer和Mouselcon属性27 2.1.10Tag属性28 2.1.11其他属性28 2.2 通用方法29 2.2.1 Move方法29 2.2.2 Refresh方法30 2.2.3 SetFocus方法30 2.2.4 ZOrder方法31 2.3 通用事件31 2.3.1 Click和DblClick事件31 2.3.2 Change事件32 2.3.3 GotFocus和LostFocus事件33 2.3.4 KeyPressKeyDownKeyUp事件33 2.3.5 MouseDown、MouseUp和 MouseMove事件35 2.4 Form对象37 2.4.1基本的Form属性37 2.4.2微调窗体的性能38 2.4.3 Form的生存期39 2.4.4 Controls集合43 2.4.5 Screen对象44 2.4.6打印文本45 2.4.7图形方法48 2.4.8 DrawMode属性51 2.4.9 ScaleMode属性54 2.4.10调色板支持56 第3章内部控件58 3.1TextBox控件58 3.1.1 运行时属性59 3.1.2捕获键盘活动60 3.1.3数字的校验例程61 3.1.4 CausesValidation属性和Validate事件63 3.1.5自动跳格字段65 3.1.6格式化文本65 3.1.7多行TextBox控件69 3.2 Label和Frame控件70 3.2.1 Label控件70 3.2.2 Frame控件71 3.3 CommandButton、CheckBox和 OptionButton控件71 3.3.1 CommandButton控件72 3.3.2 CheckBox控件72 3.3.3 OptionButton控件73 3.3.4使用图形化控件73 3.4 ListBox和ComboBox控件74 3.4.1 ListBox控件74 3.4.2 ComboBox控件81 3.5 PictureBox和Image控件83 3.5.1 PictureBox控件83 3.5.2 Image控件86 3.6滚动条控件86 3.7 DriveListBox、DirListBox和FileListBox控件89 3.8其他控件91 3.8.1Timer控件91 3.8.2 Line控件92 3.8.3 Shape控件92 3.8.4 OLE控件92 3.9菜单93 3.9.1运行时访问菜单94 3.9.2弹出式菜单95 3.10控件数组96 3.11共享事件过程97 3.11.1运行时创建控件97 3.11.2迭代控件数组的项目98 3.11.3菜单项数组98 第4章变量与过程100 4.1变量的作用域和生存期100 4.1.1全局变量100 4.1.2模块级的变量101 4.1.3动态局部变量102 4.1.4静态局部变量102 4.2内置数据类型概述103 4.2.1整型数据类型103 4.2.2长整型数据类型104 4.2.3布尔数据类型104 4.2.4字节数据类型104 4.2.5单精度数据类型104 4.2.6双精度数据类型105 4.2.7字符串数据类型105 4.2.8货币数据类型106 4.2.9日期数据类型106 4.2.10对象数据类型106 4.2.11变量数据类型107
Visual Basic 6编程技术大全 是非常详细和深入的Vb6学习教程,无论对初学者还是有经验的开发人员,都非常有帮助 第一部分基础篇1 第1章 VB6入门1 1.1 集成开发环境1 1.1.1 运行IDE1 1.1.2 选择工程类型1 1.1.3 IDE窗口2 1.1.4 菜单5 1.1.5 工具栏6 1.1.6 Toolbox7 1.2 第一个VB应用程序9 1.2.1 向窗体添加代码9 1.2.2 设置控件的属性10 1.2.3 为控件命名12 1.2.4 移动及重新调整控件尺寸13 1.2.5 设置Tab顺序13 1.2.6 添加代码14 1.2.7 运行和调试程序15 1.2.8 优化示例程序16 1.2.9 准备、编译、运行18 第2章关于窗体20 2.1 通用属性20 2.1.1 Left、Top、Width和Height属性21 2.1.2 ForeColor和BackColor属性21 2.1.3 Font属性23 2.1.4 Caption和Text属性24 2.1.5 Parent和Container属性25 2.1.6 Enabled和Visible属性25 2.1.7 hWnd属性26 2.1.8 TabStop和Tablndex属性26 2.1.9 MousePointer和Mouselcon属性27 2.1.10Tag属性28 2.1.11其他属性28 2.2 通用方法29 2.2.1 Move方法29 2.2.2 Refresh方法30 2.2.3 SetFocus方法30 2.2.4 ZOrder方法31 2.3 通用事件31 2.3.1 Click和DblClick事件31 2.3.2 Change事件32 2.3.3 GotFocus和LostFocus事件33 2.3.4 KeyPressKeyDownKeyUp事件33 2.3.5 MouseDown、MouseUp和 MouseMove事件35 2.4 Form对象37 2.4.1基本的Form属性37 2.4.2微调窗体的性能38 2.4.3 Form的生存期39 2.4.4 Controls集合43 2.4.5 Screen对象44 2.4.6打印文本45 2.4.7图形方法48 2.4.8 DrawMode属性51 2.4.9 ScaleMode属性54 2.4.10调色板支持56 第3章内部控件58 3.1TextBox控件58 3.1.1 运行时属性59 3.1.2捕获键盘活动60 3.1.3数字的校验例程61 3.1.4 CausesValidation属性和Validate事件63 3.1.5自动跳格字段65 3.1.6格式化文本65 3.1.7多行TextBox控件69 3.2 Label和Frame控件70 3.2.1 Label控件70 3.2.2 Frame控件71 3.3 CommandButton、CheckBox和 OptionButton控件71 3.3.1 CommandButton控件72 3.3.2 CheckBox控件72 3.3.3 OptionButton控件73 3.3.4使用图形化控件73 3.4 ListBox和ComboBox控件74 3.4.1 ListBox控件74 3.4.2 ComboBox控件81 3.5 PictureBox和Image控件83 3.5.1 PictureBox控件83 3.5.2 Image控件86 3.6滚动条控件86 3.7 DriveListBox、DirListBox和FileListBox控件89 3.8其他控件91 3.8.1Timer控件91 3.8.2 Line控件92 3.8.3 Shape控件92 3.8.4 OLE控件92 3.9菜单93 3.9.1运行时访问菜单94 3.9.2弹出式菜单95 3.10控件数组96 3.11共享事件过程97 3.11.1运行时创建控件97 3.11.2迭代控件数组的项目98 3.11.3菜单项数组98 第4章变量与过程100 4.1变量的作用域和生存期100 4.1.1全局变量100 4.1.2模块级的变量101 4.1.3动态局部变量102 4.1.4静态局部变量102 4.2内置数据类型概述103 4.2.1整型数据类型103 4.2.2长整型数据类型104 4.2.3布尔数据类型104 4.2.4字节数据类型104 4.2.5单精度数据类型104 4.2.6双精度数据类型105 4.2.7字符串数据类型105 4.2.8货币数据类型106 4.2.9日期数据类型106 4.2.10对象数据类型106 4.2.11变量数据类型107
《计算机软件技术基础(1)》在线作业二 将数字字符串转换成数值,可用下列()函数。 A:Fix() B:Chr() C:Asc() D:Val() 答案:D LCase(Chr(Asc("C") + 3))的结果是 A:68 B:100 C:"F" D:"f" 答案:D 将数值数据转换为字符型数据的函数是()。 A:Asc(x) B:Chr(x) C:CStr(x) D:Val(x) 答案:C DrawPie方法绘制的图形是()。 A:圆 B:椭圆 C:弧 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第1页。D:扇形 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第1页。 答案:D 表达式Microsoft.VisualBasic.right("This is a book", 3)的值是()。 A:a B:is a book C:book D:ook 答案:D 计算字符串长度的函数是()。 A:Length B:Len C:Long D:Lens 答案:B 在选复选框CheckBox1时(使其为 ),它的Checked属性为()。 A:0 B:1 C:True D:False 答案:C 设过程P有两个数值类型的形参,把()当作调用过程P的语句是错误的。 A:CallP(1,2) B:Call P(Math.Sqrt(10), 2) C:P(1,2) 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第2页。D:P1+2 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第2页。 答案:D 退出For循环可使用的语句为( )。 A:Exit For B:Exit Do C:End For D:End Do 答案:A 在窗体上要安排两组功能不同的单选按钮,则一般往往用()控件加以分隔。 A:标签 B:分组框 C:文本框 D:复选框 答案:B 图片框的Left属性使用的度量单位为()。 A:cm B:mm C:Pixel D:Twip 答案:C 以下属于合法的数组元素的是()。 A:k8 B:k[8] C:k() 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第3页。D:k(8) 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第3页。 答案:D 可以同时删除字符串头部和尾部空白的函数是()。 A:Trim() B:Rtrim() C:Mid() D:Ltrim() 答案:A 下列VB变量,不属于按其作用域划分的是()。 A:全局变量 B:局部变量 C:私有变量 D:模块变量 答案:D MsgBox(DateAdd("m",2,#1/28/2005#))语句显示结果是()。 A:2005-3-28 B:2005-1-30 C:2007-1-28 D:2003-1-28 答案:A 在VB.NET,无返回值的过程称为()过程。 A:Sub B:Function C:Property 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第4页。D:Main 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第4页。 答案:A 以下关于Visual Basic的叙述不正确的是()。 A:Dim a, b as Integer变量声明语句将a、b声明为整型 B:当Boolean类型的值转换为数值类型的数时, False转成为0, 而 True转成为 -1 C:在VB.NET,数组的下界可以是小于上界的任何整数 D:.vbproj文件是VB工程文件 答案:C 在VB.NET,向调用者返回某值的过程称为()过程。 A:Sub B:Function C:Property D:Main 答案:B 以下()语句可以跳出Do Until/Loop循环。 A:Exit For B:Exit Do C:Exit Loop D:Exit While 答案:B 下列事件,()不是键盘可触发事件。 A:Click B:KeyDown 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第5页。C:KeyUp 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第5页。 D:KeyPress 答案:A 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第6页。 《计算机软件技术基础(1)》在线作业二全文共6页,当前为第6页。 《计算机软件技术基础(1)》在线作业二 1

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧