第六章 响应鼠标和键盘事件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例2】 Private Sub Text1_KeyDown(KeyCode As _ Integer, Shift As Integer) If KeyCode = vbKeyA Then MsgBox "You pressed the A key.“ End if End Sub Private Sub Text1_KeyDown(KeyCode As _ Integer, Shift As Integer) If KeyCode = vbKey1 And shift=1 Then MsgBox "You pressed the ! key.“ End if End Sub
先后顺序KeyDown KeyPress Keyup
2010-03-18:VB中有3个键盘事件:KeyPress、KeyDown、 KeyUp,若光标在Text1文本框中,则每输入一个字母 A)这3个事件都会触发 B)只触发KeyPress事件 C)只触发KeyDown、KeyUp事件 D)不触发其中任何一个事件
【例1】设计一个程序,在窗口上建立两个文本 框,在右边的文本框中输入键盘的按键,在左 边的文本框中显示这个键符号和对应的的代码。
Private Sub Form_Load() Show Text2.SetFocus End Sub „ 按键产生KeyDown事件过程 Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer) Text1.Text = Chr(KeyCode) + " 的代码为" Text1.Text = Text1.Text + Str$ ( KeyCode) Text2.text= "" Text2.SetFocus End Sub
MouseDown
MouseUp
按下任意鼠标键按钮时发生
释放任意鼠标键按钮时发生
6.1.1 鼠标事件 MouseMove、MouseDown、MouseUp 三个事件的过程的语法格式如下:
Sub 对象_MouseMove(Button As Integer,Shift As Integer,_ X As Single,Y As Single) Sub 对象 _MouseDown(Button As Integer,Shift As Integer,_ X As Single,Y As Single)
6.1.2 鼠标指针形状 鼠标指针的形状: Mousepointer属性控制,属性值为015,99(用户可以使用图标文件.ico作为自定义图标类型)
Private Sub Form_Click() Static count % Cls Print "Mousepointer属性值为:";Hale Waihona Puke Baiducount Form1.MousePointer = count count = count + 1 If count > 15 Then count = 0 End Sub
参数Button值
参数(Button) vbLeftButton vbRightButton vbMiddleButton 值 1 2 4 说明 左按钮被按下 右按钮被按下 中间按钮被按下
参数Shift值
参数(Shift) vbShiftMask vbCtrlMask vbAltMask
4. 参数X、Y
说明: 1.Keycode 参数表示按下的物理键。上档键字符和下档键 字符也是使用同一键,它们的Keycode值相同。
keycode 参数通过 ASCII 值或键代码常数来识别键。字母键 的键代码与此字母的大写字符的 ASCII 值相同。所以 "A" 和 "a" 的 keycode 都是由 Asc("A") 返回的数值。在下例中用 KeyDown 事件判断是否按下了 "A" 键:
【例】编写一个程序,确定是哪个鼠标键被按下。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y
As Single) Select Case Button Case vbRightButton „右键 2 LabRight.BackColor = vbRed LabMid.BackColor = 12632256 LabLeft.BackColor = 12632256 Case vbMiddleButton „中间键 4 LabRight.BackColor = 12632256 LabMid.BackColor = vbRed LabLeft.BackColor = 12632256
2.shift参数
shift 表示是在该事件发生时响应SHIFT、CTRL 和 ALT 键 的状态,它是一个整数。其含义与上一节中MouseMove、
MouseDown、MouseUp事件中的shift参数完全相同。
例如:下例是用Shift参数判断是否按下了字母的大写形式。 Private Sub Text1_KeyDown(KeyCode As
Static:静态变量
的定义,事件过 程结束内存空间 不回收,直到整 个应用程序结束 才回收空间。
Mousepointer属性表
2010-03-25:要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标 的位置坐标。下面能正确实现上述功能的事件过程是 A)Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) Print X,Y End Sub B)Private Sub P1_MouseDown(Button AS Integer,Shift As Integer,X As Single, Y As Single) Picture.Print X,Y End Sub C) Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) P1.Print X,Y End Sub D)Private Sub Form_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) P1.Print X,Y End Sub
入数字、小数点,只能响应BackSpace 键及回车键。
Private Sub Text1_KeyPress (KeyAscii As Integer)
Select Case KeyAscii
Case 48 to 57,46,8,13 Case Else KeyAscii=0 End Select
End Sub
Integer, Shift As Integer)
If KeyCode = vbKeyA And Shift = 1 Then
MsgBox "You pressed the uppercase A key."
End if End Sub
课堂练习
1、以下关于KeyPress事件过程中参数KeyAscii 的叙述中正确的是 A)KeyAscii参数是所按键的ASCII码 B)KeyAscii参数的数据类型为字符串 C)KeyAscii参数可以省略 D)KeyAscii参数是所按键上标注的字符
KeyPress 事件只识别 Enter、Tab和Backspace 键。不能
检测其它功能键、编辑键和定位键。
6.2.2 KeyDown 和 KeyUp 事件 当一个对象具有焦点时按下(KeyDown) 或松开 ( KeyUp ) 一个键时发生。它们报告键盘本身准确的物理状 态:按下键 (KeyDown) 及松开键 (KeyUp)。
值 1 2 4
描述 SHIFT 键被按下 CTRL 键被按下 ALT 键被按下
X, Y鼠标指针的位置,通过X和Y参数返回一个指定鼠 标指针当前位置的数,X和Y的值是使用该对象的坐标系统 表示鼠标指针当前位置。
注意: 鼠标事件被用来识别和响应各种鼠标状态,并把这些状 态看作独立的事件,在按下鼠标按钮并释放时,Click 事 件只能把此过程识别为一个单一的单击操作。鼠标事件 能够区分各鼠标按钮及键盘的SHIFT、CTRL、ALT 键的 状态。
课堂练习 设窗体上有一个名为Text1的文本框,并编写如下程序: Private Sub Form_Load() Show Text1.Text = “” Text1.SetFocus End Sub Private Sub Form_MouseUp(Button As Integer, _ Shift As Integer, X As Single, Y As Single) Print “程序设计” End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Print “Visual Basic”; End Sub 程序运行后,如果在文本框中输入字母“a”,然 后单击窗体,则在窗体上显示的内容是 A)Visual Basic C)Visual Basic程序设计 B)程序设计 D)a程序设计
KeyDown和KeyUp事件能够检测其它功能键、编辑键和定位键。 KeyUp 和 KeyDown 事件过程的语法格式如下:
Sub Object_KeyDown(KeyCode As Integer, Shift As Integer)
Sub Object_KeyUp(KeyCode As Integer, Shift As Integer)
Case vbLeftButton
„左键 1
LabRight.BackColor = 12632256 LabMid.BackColor = 12632256 LabLeft.BackColor = vbRed
End Select
End Sub
6.2 使用键盘 在Visual Basic中,提供KeyPress、KeyDown、KeyUp三 种键盘事件,窗体和接受键盘输入的控件都识别这三种事件, 只有获得焦点的对象才能够接受键盘事件。
本章内容及要求
6.1 使用鼠标 6.2 使用键盘 6.3 设计菜单
6.1 使用鼠标 大多数控件能够识别鼠标的MouseMove、MouseDown和
MouseUp事件,通过响应这些鼠标事件,能在应用程序对
鼠标位置及状态的变化作出响应操作。 MouseMove 每当鼠标指针移动到屏幕新位置时发生
例如,如果希望将文本框中的所有字符都强制转换为大写字 符,则可在输入时使用此事件转换大小写:
Private Sub Text1_KeyPress (KeyAscii As Integer)
KeyAscii = Asc(Ucase(Chr(KeyAscii))) End Sub
例:
通过编程序,在一个文本框(Text1)中限定只能输
Sub 对象t _MouseUp(Button As Integer,Shift As Integer,_ X As Single,Y As Single)
其中: 1.对象可以是窗体对象和大多数可视控件。 2.Button参数是表示按下或松开鼠标左中右的哪个按钮。 3.Shift参数表示键盘的Shift、Ctrl和Alt键的状态,
KeyPress 按下对应某ASCII 字符的键。
KeyDown 按下键盘的任意键。 KeyUp 释放键盘的任意键。 6.2.1 KeyPress 事件 在按下与ASCII字符对应的键时将触发KeyPress 事件。
KeyPress 事件过程的语法格式是:
Sub Object_KeyPress (KeyAscii As Integer) 其中: Object是指窗体或控件对象名,KeyAscii 参数返回对应 于ASCII字符代码的整型数值。
相关文档
最新文档