Visual Basic程序设计 教学课件 ppt 作者 解凯 陈如琪 第11章 键盘与鼠标事件过程

上传人:E**** 文档编号:89397118 上传时间:2019-05-24 格式:PPT 页数:31 大小:331.50KB
返回 下载 相关 举报
Visual Basic程序设计 教学课件 ppt 作者  解凯 陈如琪 第11章 键盘与鼠标事件过程_第1页
第1页 / 共31页
Visual Basic程序设计 教学课件 ppt 作者  解凯 陈如琪 第11章 键盘与鼠标事件过程_第2页
第2页 / 共31页
Visual Basic程序设计 教学课件 ppt 作者  解凯 陈如琪 第11章 键盘与鼠标事件过程_第3页
第3页 / 共31页
Visual Basic程序设计 教学课件 ppt 作者  解凯 陈如琪 第11章 键盘与鼠标事件过程_第4页
第4页 / 共31页
Visual Basic程序设计 教学课件 ppt 作者  解凯 陈如琪 第11章 键盘与鼠标事件过程_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《Visual Basic程序设计 教学课件 ppt 作者 解凯 陈如琪 第11章 键盘与鼠标事件过程》由会员分享,可在线阅读,更多相关《Visual Basic程序设计 教学课件 ppt 作者 解凯 陈如琪 第11章 键盘与鼠标事件过程(31页珍藏版)》请在金锄头文库上搜索。

1、Visual Basic 程序设计语言,第11章 键盘与鼠标事件过程,11.1 键盘事件 11.1.1 KeyPress事件 11.1.2 KeyDown和KeyUp事件 11.2 鼠标事件 11.3 拖放事件 11.3.1 控件拖放 11.3.2 拖放方式,11.1 菜单的设计,VB中对象识别键盘有三个事件: KeyPress、KeyUp 和 KeyDown三种 提示:用户按下并且释放一个ANSI键时就会触发 KeyPress事件;用户按下一个键时触发KeyDown事 件,释放引发KeyUp事件。,在引发键盘事件的同时,用户所按的键盘码作为实参传递给相应的事件过程,供程序判断识别用户的操作。

2、,11.1.1 KeyPress事件,当用户按下并松开一个ANSI键时将触发KeyPress事件 KeyPress事件的语法格式如下: Private Sub Object_KeyPress( index As Integer, KeyAscii As Integer) Object 表示一个对象,即接收按键的对象;index用于控件 数组,用来唯一标识在控件数组中的一个控件(如果没有控 件数组则不出现该参数);KeyAscii返回按键对应的ASCII 码的整型数值。例如:按下回车键时,可获得该键的字符 ASCII码值为13。KeyAscii的值通过引用传递,对它进行改 变可给接收按键对象发送

3、一个不同的字符。,例11-1 在窗体上放两个文本框,编写一事件过程,保证在上面文本框内输入的大写字母转换成小写字母,小写字母转换成大写字母,空格不转换,其余转换成“*”。,分析:需要设置两个文本框,Text1用于输入,并在文本框 的KeyPress事件中编写代码。Text2用于输出转换后的字符。 运行界面如图11-1所示。,运行结果,程序代码如下: Private Sub Text1_KeyPress(KeyAscii As Integer) Dim aa As String * 1 aa = Chr$(KeyAscii) 将ASCII码转换成字符 Select Case aa Case “A

4、“ To “Z“ 大写转换成小写 aa = Chr$(KeyAscii + 32) Case “a“ To “z“ 小写转换成大写 aa = Chr$(KeyAscii - 32) Case “ “ Case Else aa = “*“ End Select 将转换文本框已有的内容与刚输入并转换的字符连接 Text2.Text = Text2.Text & aa End Sub Private Sub Command1_Click() Text1.Text = “ Text2.Text = “ End Sub Private Sub Command2_Click() End End Sub,例

5、11-2 限制在文本框中只能接收“0”“9”的数字字符。,分析:该方法主要检验在文本框输入的ASCII码值是否在48 到57之间。因此需要在文本框的KeyPress事件中编写代码。 当输入非数字时,弹出对话框提示输入数字。 程序代码如下: Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 57 Then Msgbox “请输入09之间的数字” KeyAscii = 0 End If End Sub,11.1.2 KeyDown和KeyUp事件,KeyPress事件只识别ENTER、TAB和BACKSPACE及标准键盘上 的字母、数字、标点等

6、标准ASCII字符。如要检测其他功能键、 编辑键和定位键,则需要利用KeyDown和KeyUp事件。 其基本语法格式为: Private Sub Object_KeyDown( index As Integer, KeyCode As Integer,,Shift As Integer) Private Sub Object_KeyUp( index As Integer, KeyCode As Integer,,Shift As Integer),Shift参数的取值及含义,例11-3 显示所按键的状态,并判断是否是F10键。,分析:建立一个名字为Text1的文本框,接收来自键盘按键 信息,

7、建立一个名字为Label1的标签,显示键盘输入的信 息,如果通过键盘方式输入F10,那么会在标签中显示,否 则不会显示出完整的组合键信息。,输入Shift+F10,输入Ctrl+F10,程序如下: Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Dim Msg If Shift = vbCtrlMask Then Msg = Msg + “Ctrl+“ End If If Shift = vbAltMask Then Msg = Msg & “Alt+“ End If If Shift = vbShiftMask

8、Then Msg = Msg & “Shift+“ End If If KeyCode = vbKeyF10 Then Msg = Msg & “F10“ End If Label1.Caption = Msg End Sub,例11-4 判断是否按下了某个键,下面的程序可判断出是否按下了“B”键。,说明:默认情况下,当用户对当前具有焦点的控件进行键盘 操作时,控件的KeyPress、KeyDown和KeyUp事件都会触发, 但窗体的KeyPress、KeyDown和KeyUp事件不会发生,为了启 用这三个事件,必须将窗体的KeyPreview属性设为True, 而默认是False。 程序如下

9、: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCodevbKeyB Then MsgBox “您输入了字符B!“ EndIf End Sub,例11-5编程实现按下Alt+F6时关闭窗体。,分析:此程序是对键盘组合键的捕捉,但通过键盘输入Alt+F6, 则关闭窗体。 程序如下: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCodevbKeyF6 And Shift=4 Then Unload Me End

10、If End Sub,输入字符B,KeyDown、KeyUp与KeyPress的区别,KeyPress不直接报告键盘的状态,只报告Ascii值;不识别按下、放开的动作;通过 KeyAscii 返回输入字符的信息。 KeyDown 、KeyUp区分按下与放开操作;不区分大小写;通过 KeyCode 和 Shift 返回输入字符的信息。例如:按“A”和“a”返回的是同一个KeyCode值,因为它们是同一个键;而对KeyPress来说,按“A”和“a”得到的ASCII码是不一样的。在KeyDown和KeyUp事件中,为判断按下的是大写字母还是小写字母,需要配合使用Shift参数。 按下键盘时,控件的

11、键盘事件触发顺序为KeyDown、KeyPress、KeyUp KeyPress事件识别的击键范围比KeyDown和KeyUp事件小。例如:按键盘上的F11和F12功能键和定位键不能触发KeyPress事件,但是可触发KeyDown和KeyUp事件。,11.2 鼠标事件,鼠标事件是由鼠标动作而引起的,三个基本的鼠 标事件的触发情况为: MouseDown事件:按下鼠标按钮时触发。 MouseUp事件:释放鼠标时触发。 MouseMove事件:移动鼠标光标时触发。 其语句格式如下: Private Sub Object_Click() Private Sub Object_DblClick()

12、Private Sub Object_MouseDown( index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Private Sub Object _MouseUp( index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) Private Sub Object _MouseMove( index As Integer, Button As Integer, Shift As In

13、teger, X As Single, Y As Single),表11-2 MouseMove事件中Button参数的取值及含义,MouseDown和MouseUp事件,MouseDown和MouseUp事件是当鼠标按下或释放时触发,通常 用来在运行时调整控件在窗体上的位置,或实现某些图形果。 将MouseDown事件与Move方法结合起来使用,就可以将命令 按钮移动到窗体的不同位置。鼠标指针的位置决定按钮的新 位置:在单位窗体的任意位置时,控件将移动到光标位置。 过程Form_MouseDown将执行此操作: Private Sub Form_MouseDown( index As Int

14、eger, Button As Integer, Shift As Integer, X As Single, Y As Single) Command1.Move X,Y End Sub,例11-6 用标签显示鼠标点击的位置。,分析:此实例主要显示鼠标按下时对鼠标位置的捕捉。 程序如下: Dim X1, Y1 As Integer Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) X1 = X Y1 = Y Label1.Caption = “鼠标的坐标:x为 “

15、 & X & “ y 为:“ & Y End Sub,鼠标点击的坐标,例11-7随着鼠标的移动,在窗体上写出鼠标的位置,分析:此程序显示随着鼠标的移动在窗体上显示,当前鼠标的坐标值。 程序如下: Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) CurrentX = X CurrentY = Y Print X,Y End Sub,鼠标的坐标,例11-8鼠标事件(MouseDown、MouseUp和MouseMove)综合实例,分析:窗体上建立两个标签(Label1

16、和Label2),Label2设置为不可 见,一个按钮(Command1),实现当按下按钮时,Label2的标题显示 为“欢迎点击!”,鼠标抬起时,Label2消失,当鼠标在Label1上移动 时,Label1的标题字体为蓝色,有下划线,Label2的主题为“你好!” 并且随着鼠标的位置在移动。 程序代码(详见 例11-8),欢迎界面,单击按钮,标签随鼠标移动,11.3 拖放事件,11.3.1 控件拖放,1、属性 与拖放操作相关的属性有两个:DragMode和DragIcon。,(1)DragMode属性 该属性用来设置控件的拖放模式,共有两种:自动拖动模式(Automatic)和手动拖动模式(Manual)。当DragMode属性设置为0(默认值)时表示手工拖动,当DragMode属性为1时表示自动拖动。,(2)DragIcon属性 在拖动控件的过程中,被拖动的控件并没有移动,随鼠标移动的是代表该控件的图标。 拖动控件时,Visual Basic将控

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号