vb键盘与鼠标事件过程(课堂PPT)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖11.1 键盘事件
键 盘 事 件 是 指 能 够 响 应 各 种 按 键 操 作 的 KeyDown 、 KeyUp及KeyPress事件,可以把编写响应击键事件的应用 程序看作是编写键盘处理器。键盘处理器可在控件级和窗 体级这两个层次上工作。有了控件级(低级)处理器就可 对特定控件编程。例如,可能希望将Textbox这个控件中的 输入文本都转换成大写字符。而有了窗体级处理器就可使 窗体首先响应击键事件,于是就可将焦点转换成窗体的控 件并重复或启动事件。
11.1.1 KeyPress事件
KeyPress事件当用户按下和松开一个ASCII字符键时发 生。该事件被触发时,被按键的ASCII码将自动传递给事 件过程的KeyAscii参数。在程序中,通过访问该参数,即 可获知用户按下了哪一个键,并可识别字母的大小写。其 语法格式为:
Private Sub 对象名_KeyPress(keyascii As Integer)
Private Sub Text1_KeyPress(KeyAscii As Integer) Text2.Text = KeyAscii Select Case KeyAscii
Case 0 To 7, 9 To 12, 14 To 26, 28 To 31 Text1.Text = "" Text3.Text = "Ctrl+" & Chr(64 + KeyAscii) Case 8 Text3.Text = "Ctrl+" & Chr(64 + KeyAscii) & " 或 退格键" Case 13 Text1.Text = "" Text3.Text = "Ctrl+" & Chr(64 + KeyAscii) & " 或 回车键" Case 27 Text1.Text = "" Text3.Text = "Ctrl+" & Chr(64 + KeyAscii) & " 或 Esc键" Case Else Text3.Text = Chr(KeyAscii) End Select If Check1.Value = 0 Then KeyAscii = 0 End If End Sub
【例11-2】可以测试功能键与控制键的程序(如图11-2)。
程序的代码部分:
文本(输入)框Text1的Keቤተ መጻሕፍቲ ባይዱdown事件代码:
Private Sub Text1_Keydown(KeyCode As Integer, Shift As Integer) Text2.Text = Text2.Text & Str(KeyCode) & "," If KeyCode > 111 And KeyCode < 124 Then
其中参数keyascii是被按下字符键的标准ASCII码。对它 进行改变可给对象发送一个不同的字符。将keyascii改变为 0时可取消击键,这样一来对象便接收不到字符。
KeyPress事件可以引用任何可打印的键盘字符、来自标 准字母表的字符或少数几个特殊字符之一的字符与〈Ctrl〉 键的组合、〈Enter〉或〈Backspace〉键。
11.1.2 KeyDown和KeyUp事件
shift 参 数 项 返 回 一 个 整 数 , 该 整 数 相 应 于 〈Shift〉 、 〈Ctrl〉和〈Alt〉键的状态。shift参数等于1、2和4分别表 示〈Shift〉、〈Ctrl〉和〈Alt〉键被按下,而三数的部分 和表示三个按钮部分地被同时按下。因此,可结合该参数 项来判断输入字母的大小写。
第11章 键盘与鼠标事件过程
1
第11章 键盘与鼠标事件过程
除了响应鼠标的单击(Click)或双击(DblClick)事件 以外,Visual Basic应用程序还能响应多种鼠标事件和键盘 事件。例如,窗体、图片框与图象控件都能检测鼠标指针 的位置,并可判定其左、右键是否已按下,还能响应鼠标 按钮与Shift、Ctrl或Alt键的各种组合。利用键盘事件可以 编程响应多种键盘操作,也可以解释、处理ASCII字符。
11.1.2 KeyDown和KeyUp事件
KeyDown和KeyUp事件是当一个对象具有焦点时按下或 松开一个键时发生的。当控制焦点位于某对象上时,按下 键盘中的任意一键,则会在该对象上触发产生KeyDown事 件 , 当 释 放 该 键 时 , 将 触 发 产 生 KeyUp 事 件 , 之 后 产 生 KeyPress事件。其语法格式为:
【例11-1】可以显示按键及其ASCII码的程序(如图11-1)。
图11-1 KeyPress事件接受的按键
程序的代码部分: 复选框的Click事件代码:
Private Sub Check1_Click() Text1.SetFocus End Sub
文本(输入)框Text1的KeyPress事件代码:
Label1(2).Caption = "你刚才按了功能键:" & "F" & Str(KeyCode - 111) Label1(2).Visible = True Else Label1(2).Visible = False End If Check1.Value = IIf((Shift And vbShiftMask) > 0, 1, 0) Check2.Value = IIf((Shift And vbCtrlMask) > 0, 1, 0) Check3.Value = IIf((Shift And vbAltMask) > 0, 1, 0) End Sub
Private Sub 对象名_KeyDown(KeyCode As Integer, Shift As Integer) Private Sub 对象名_KeyUp(KeyCode As Integer, Shift As Integer)
其中参数KeyCode参数项用于返回被按键的扫描代码。 由于扫描码主要反映物理键位,因此通过该参数不能区分 字母大小写。
应 当 使 用 KeyDown 和 KeyUp 事 件 过 程 来 处 理 任 何 不 被 KeyPress识别的击键,诸如:功能键、编辑键、定位键以 及 任 何 这 些 键 和 键 盘 换 档 键 的 组 合 等 。 与 KeyDown 和 KeyUp事件不同的是,KeyPress不显示键盘的物理状态, 而只是传递一个字符。