《vb程序设计第十一章键盘和鼠标事件过程》由会员分享,可在线阅读,更多相关《vb程序设计第十一章键盘和鼠标事件过程(11页珍藏版)》请在金锄头文库上搜索。
1、Visual Basic程序设计教程,,内蒙古科技大学实践训练中心,第十一章 键盘和鼠标事件过程,11.1 键盘事件,键盘事件: KeyPress 事件:用户按下并释放一个能产生一个能产生ASCII码的键时 被触发; KeyUp 事件:用户释放任一键时被触发; KeyDown 事件:用户按下任一个键时被触发;,11.2 KeyPress事件,引发KeyPress事件的按键: 数字、大小写字母、Enter、Backspace、Esc、Tab等键。 如文本框Text1的KeyPress事件如下: Private Sub Text1_KeyPress(Keyascii as integer) End
2、 Sub “a”的ASCII值为97;“A”的ASCII值为65;,11.3 KeyUp和KeyDown事件,当控制焦点在某个对象上时,按下键盘上的任一键,便会引发该对象的KeyDown事件,释放按键便会触发KeyUp事件。 如文本框Text1的KeyDown事件过程: Private Sub Text1_KeyDown(KeyCode as integer,Shift As integer) End Sub 如文本框Text1的KeyUp事件过程: Private Sub Text1_KeyUp(KeyCode as integer,Shift As integer) End Sub 参数:
3、 KeyCode:为用户所操作的键的扫描码;即键的物理位置相同则KeyCode参数值相同(”A“和”a“;5和等);但大键盘的数字和小键盘的数字的KeyCode不一样;,11.3 KeyUp和KeyDown事件,参数: Shift:根据是否同时按下Shift、Ctrl和Alt键返回的一个整数;, 键盘三个事件的触发顺序:KeyDown、KeyPress、KeyUp; 一般情况下,控件可以触发这三个事件; 但窗体必须将“KeyPreiew”属性值设为True;则首先窗体的KeyPress、 KeyUp和KeyDown;,11.3 KeyUp和KeyDown事件,例11-1设计一个应用程序。在窗体
4、上建立一个文本框和一个标签,当从键盘向文本框英文字符时,将其转换成大写字母显示在标签中。 解题思路:在text1的keypress事件中,将键盘的asc码转化为相应的字符, 再将其转化为大写。,Private Sub Text1_KeyPress(KeyAscii As Integer) Dim char As String char = UCase(Chr(KeyAscii) Label1.Caption = Label1.Caption & char End Sub,11.3 KeyUp和KeyDown事件,例11-2设计一个应用程序。在窗体上建立一个文本框,其属性值均为默认值,并将窗体的
5、KeyPreview属性值设为True。 解题思路:若设置窗体的KeyPreview属性值为True,则先执行窗体的KeyPress事件,而后执行文本框的KeyPress事件;,Private Sub Form_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub,11.3 KeyUp和KeyDown事件,例11-3设计一个应用程序。当按下AltF5组合键时终止程序运
6、行。 说明:先将窗体的KeyPreiew设为True; F5的KeyCde值为vbKeyF5; Alt键被按下的常数为vbAltMask Private Sub Form_KeyDown(KeyCode as integer,Shift as integer) If keycode=vbkeyF5 and Shift=vbAltMask then end end if,11.4 鼠标事件, MouseDown事件; MouseUp事件; MouseMove事件; 以窗体Form为例: Private Sub Form_MouseDown(Button as integer, Shift as
7、Integer, x as single,y as single) end sub Private Sub Form_MouseUp(Button as integer, Shift as Integer, x as single,y as single) end sub Private Sub Form_MouseMove(Button as integer, Shift as Integer, x as single,y as single) end sub,11.4 鼠标事件,参数: Button参数:,Shift:同键盘的Shift参数; x、y:对应于鼠标指针的位置; 鼠标事件出发顺序: MouseDown、Click、MouseUp,11.4 鼠标事件,例11-4利用鼠标画圆。 方法:利用MuseDown事件记录圆心的坐标,用MouseUp事件记录半径端点的坐标,计算半径,再利用Circle方法在窗体上画圆。 例11-5显示鼠标指针所指的位置。 方法:利用窗体的MouseMove事件,将事件的鼠标坐标x、y显示在文本框内。,