文档库 最新最全的文档下载
当前位置:文档库 › vb中键盘鼠标事件

vb中键盘鼠标事件

vb中键盘鼠标事件
vb中键盘鼠标事件

第12章键盘与鼠标事件过程

Visual Basic应用程序能够响应多种键盘事件和鼠标事件。例如,窗体、图片框与图像控件都能检测鼠标指针的位置,并可判定其左、右键是否已经按下,还能响应鼠标按钮与Shift、Ctrl或Alt键的各种组合。利用键盘事件可以编程响应多种键盘操作,也可以解释、处理ASCII字符。Visual Basic应用程序还支持大多数控件及OLE的拖放功能,可用控件的Drag方法连同某些属性和事件宋实现控件的拖放操作。OLE的拖放使应用程序的数据交换功能大大增强。

本章将对键盘和鼠标事件进行详细讲解,使读者掌握利用键盘和鼠标进行编程的基本技术。

12.1键盘事件

键盘事件是用户与程序之间交互操作中的主要元素之—。单击鼠标和按下按键都可以触发事件,而且还提供进行数据输入的手段以及在窗口和菜单中移动的基本形式。

键盘事件有三种,即KeyPress、KeyUp和KeyDown事件。窗体和可接受键盘输入的控件(如文本框TextBox、命令按钮CommandButton、图片框PictureBox、组合框ComboBox 等)都可识别这些事件。值得注意的是,只有获得焦点的对象才能够接受键盘事件。对于窗体,只有成为活动窗体并且窗体中的任何控件均未获得焦点时,才会产生窗体的键盘事件。窗体中任何控件已经获得焦点时,会产生控件的键盘事件。

12.1.1 KeyPress事件

当用户按下键盘上的某个键时,将触发KeyPress事件。该事件可以用于窗体和大部分标准控件,严格来说,当按下某个键时,所触发的是具有输入焦点(FOCUS)的那个控件的KeyPress事件。在某一时刻,输入焦点只能位于某一个控件上,如果窗体上没有可见或有效的控件,则输入焦点位于窗体上。当一个控件或窗体拥有输入焦点时,该控件或窗体将接受从键盘上输入的信息。例如,假定一个文本框拥有输入焦点,则从键盘上输入的任何字符都将在该文本框上回显。

KeyPress事件过程的一般格式是:

Private Sub对象名KeyPress(KeyAscii as Integer)

事件过程

End Sub

如果接受KeyPress事件的对象为控件数组,对应的事件过程的格式为:

Private Sub 对象名_KeyPress(Index as Integer,KeyAscii AS Integer)

事件过程

End Sub

其中,“Index”是数组元素的下标。

说明:

(1)“对象名”是接受键盘事件的对象的名称,如文本框、窗体等。

(2)KeyAscii为KeyPress事件过程的参数,返回用户所按键的ASCII值。如按下小写字母“a”时返回97,按下大写字母“A”时则返回65。相应的小写字母ASCII值比大写字母大32。0~9的ASCII值为48~57之间。在KeyPress事件过程中,将KeyAscii的值改为0,可以取消该字符和这次按键操作。

注意:在默认状态下控件的键盘事件优于窗体的键盘事件,冈此在发生键盘事件时,总是先激活控件的键盘事件。如果希望窗体先接受键盘事件,则必须把窗体的KeyPreviev属性设置为True,否则不能激活窗体的键盘事件。这里所说的键盘事件包括KeyPress、KeyDown

和KeyUp。

[例12-1]将输入到文本框中的所有字符都强制转换为大写字符。

问题分析:可使用KeyPress事件将输入的每一个字符转换为大写。

程序代码:

Private Sub Text1_KeyPress(KeyAscii As Integer)

KeyAscii=Asc(UCase(Chr(KeyAscii)))

End Sub

这里通过设置KeyAscii参数,返回转换后的大写字符的ASCII码值。Chr函数将ASCI:码转换成对应的字符,UCase函数将字符转换为大写,Asc函数将字符转换为ASCII码。

[例12-2]限制在文本框中输入的字符为数值。

问题分析:可使用KeyPress事件将输入的每一个字符进行判断,当用户按下的不是04之间的键时,使用KeyPress事件给用户进行提示,并使输入的值不在文本框中显示出来。

Private Sub Text1_KeyPress(KeyAsciiAs Integer)

If KeyAscii<48 or KeyAscii>57 Then '按键是不是0~9

MsgBox "数字非法!只能输入数字字符。"

KeyAscii=0'撤销该字符,也不显示

End If

End Sub

12.1.2 KeyDown事件和KeyUp事件

KeyDown事件在按下键盘时触发,KeyUp事件则在释放键盘时触发。KeyDown事件和KeyUp事件提供了最低级的键盘响应,可以报告键盘的物理状态。按下某个键时也会触发KeyPress事件,但与KeyDown事件不同的是,KeyDown事件和KeyUp事件返回的是键盘的直接状态,即返回的是所按的“键”,而KeyPess返回的是“字符”的ASCII码。例如,输入大写“A”和小写“a”时,KeyDown事件获得“A”的ASCII码,在输入小写“a”时,KeyDown事件获得与“A”相同的ASCII码,即KeyDown事件不区分大小写,而KeyPress 事件将字母的大小写作为两个不同的ASCII字符处理。

KeyDown事件过程的—般格式是:

Private Sub对象名_KeyDown(KeyCode As Integer,Shift As Integer)

事件过程

End Sub

KeyUp事件过程的一般格式是:

Private Sub对象名KeyUp(KeyCode As Integer,Shift As Integer)

事件过程

End Sub

说明:

(1)“对象名”是窗体和能接受键盘事件的控件的名称。

(2)参数KeyCode是所按键的扫描码,即大写字母对应的ASCII值。

(3)参数Shift是描述Shift、Ctrl和Alt键的状态的一个整数,Shift参数是一个位域,由3个二进制位组成,最低位(位0)表示Shift键的状态,中间位(位1)表示Ctrl键的状态,最高位(位2)表示Alt键的状态。Visual Basic定义了三个位屏蔽常数vbShiftMask、vbCtrlMask、vbAltMask,用来测试三个键的组合。表12-1列出了Shift参数的取值。

[例12-3]判断是否按下了某个键。

以下程序代码可判断是否按下了“A”键:

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)

If KeyCode=vbKeyA Then MsgBox "Y ou Pressed the A key"

End Sub

请读者用KeyPress事件过程实现类似功能,考虑一下有什么不同。

[例12-4]上档符号键的监测。

问题分析:要监测是否按下了键盘上的上档符号键,只使用KeyCode是不够的,需要使用Shift参数。下面的程序可判断是否按下了“*”键:

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)

If KeyCode=vbKey8 And Shift=1 Then

MsgBox "您按下了*键"

End If

End Sub

利用位屏蔽常数和位运算符AND可以根据Shift的值确定是否按下了某个特殊键。

[例12-5]判断是否按下了Alt键。编程实现按下Alt+F6时关闭窗体。

下面的程序用来监测是否按下了Alt+F6组合键:

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)

If KeyCode=vbKeyF6 And Shift=4 Then

Unload Me

End If

End Sub

KeyPress事件与KeyDown/KeyUp事件的区别:

(1)KeyPress事件返回的是字符的ASCII码,而KeyDown/KeyUp返回的是键的代码。例如,按“A”和“a”返回的是同一个KeyCode值,因为它们是同一个键:而对KeyPress 来说,按“A”和“a”得到的ASCII码是不一样的。在KeyDown/KeyUp事件中,为判断按下的是大写字母还是小写字母,需配合使用Shift参数。

(2)KeyPress事件识别的击键范围比KeyDown/KeyUp事件小。例如,按键盘上的Fll-F12功能键和定位键不能触发KeyPress事件,但是可触发KeyDown/KeyUp事件。

12.2 鼠标事件

在Windows应用程序中,与鼠标操作相关的事件较多,除了常用的单击事件Click、双击事件DblClick外,有些程序还需要对鼠标指针的位置和状态变化作出响应,因此需要使用鼠标事件MouseDown、MouseUp和MouseMove。

12.2.1鼠标事件

鼠标事件是由鼠标动作而引起的。三个基本的鼠标事件是:

●MouseDown事件:按下鼠标按钮时触发。

●MouseUp事件:释放鼠标时触发。

●MouseMove事件:移动鼠标光标时触发。

鼠标事件过程的一般格式是:

Private Sub对象名—事件名(Button As Integer,Shift As Integer,X As Single,Y As Single) 说明:

(1)“对象名”可以是窗体及能接受鼠标事件的大多数控件。当鼠标指针位于窗体上时,窗体将识别鼠标事件;当鼠标指针在控件上时,控件将识别鼠标事件。如果按下鼠标按钮个放,则即使指针已移离对象,对象仍将继续识别所有鼠标事件,直到用户释放按钮为止。

(2)事件名为MouseDown、MouseUp或MouseMove。

(3)参数Button是一个整数,是一个由3个二进制位组成的位域,分别表示鼠标的3个按钮的状态:如果某个按钮按下,其对应的二进制位就被设置为1,否则为0。将三位二进制数转化为十进制数即为Button的值。Button参数最低位(位0)对应左按钮,中间位(位1)对应右按钮,最高位(位2)对应中间按钮。表12-2给出了Button参数的取值及对应的含义。

表12-2MouseMove事件中Button参数的取值及含义

(5)X、Y参数表示鼠标指针的坐标位置,X、Y的值与当前对象的坐标系有关。

1.MouseDown和MouseUp事件

MouseDown和MouseUP事件是当鼠标按下或释放时触发,通常用来在运行时调整控件在窗体上的位置,或实现某些图形效果。

将MouseDown事件与Move方法结合起来使用,就可以将命令按钮移动到窗体的不同位置。鼠标指针的位置决定按钮的新位置:在单击窗体的任意位置时,控件将移动到光标位置。过程Form_MouseDown将执行此操作:

Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y AsSingle) Command1.Move X,Y

End Sub

[例12-6]在窗体中画线。

问题分析:按下按钮时触发MouseDown事件,并在鼠标按钮按下的位置出现一个端点:释放鼠标按钮时触发MouseUp事件,然后在鼠标按钮被释放的位置出现另一个端点。

根据Line方法即可画线。

程序代码为:

Dim X1,Y1

Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y AsSingle)

X1=X:Y1=Y

End Sub

Private Sub Form MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)

Line(X1,Y1)-(X,Y)

End Sub

当MouseDown事件发生时,鼠标指针的位置被保存到X1和Y1中。当MouseUp事件发生时,则以X1,Y1为起点坐标,当前鼠标指针位置X,Y为终点,绘制一条直线,如图12-1所示。

图12-1结合MouseUp和MouseDown事件画直线

[例12-7]在窗体上建一个名称为List1的列表框和一个名称为Text1的文本框,如图12-2所示。编写窗体的MouseDown事件过程,程序运行后,如果用鼠标左键单击窗体,则从键盘中输入要添加到列表框中的项目(内容任意,不少于3项):如果刚鼠标右键单击窗体,则从键盘上输入要删除的项目,将其从列表框中删除。程序运行结果如图11-3所示。

图12-2程序界面设计

图12-3程序运行结果

程序代码如下:

Private Sub Form MouseDown(Button As Integer,Shift As Integer,X As Single,Y ASSingle) If Button=1 Then

Text1.Text=InputBox("请输入要添加的项目")

List1.Addltem Text1.Text

End If

If Button=2 Then

Text1.Text=InputBox("请输入要删除的项目")

For I=0 To List1.ListCount-1

List1.List(1)=Text1.Text Then

List1.Removeltem I

End If

Next I

End If

End Sub

2.MouseMove事件

当鼠标指针在屏幕上移动时就会发生MouseMove事件,窗体和控件均能识别该事件。

当移动鼠标时,MouseMove事件不断发生,但并不是对鼠标经过的每个像素都会触发。

例如,在Form_MouseMove事件过程中加入Circle方法:

Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X AS Single,Y As Single) Circle(X,Y),50

End Sub

程序运行如图12-4所示,鼠标指针移动得越快,在两点之间触发的MouseMove事件越少。众多圆圈挤在一起,表明鼠标在此位置移动缓慢。

图12-4MouseMove事件

注意:

(1)由于应用程序能接二连三地触发大量的MouseMove事件,因此MouseMove事件不应去做需要大量时间的工作。

(2)Button参数对于MouseMove事件与MouseDown、MouseUp事件不同,MouseMove

事件的Button值表示所有按键的状态,而MouseDown和MouseUp事件的Button值无法检测是否同时按下两个以上的按键。

[例12—8]制作一个简单的画图程序,使其具有绘画、擦除功能。

问题分析:在窗体中添加一个图片框Picture1,两个按钮(数组形式),如图12-5所示。

当单击绘画按钮后,在Picture1中按下鼠标左键后拖动就可以随意地画线或写字,释放鼠标后就停止画线。单击擦除按钮可通过画一个白色的圆点将图像擦除。

图12-5画图

程序代码如下:

Option Explicit

Dim MouseState As Integer

Dim Isdraw AS Boolean

Pdvate Sub Command1_Click(Index As Integer)

Select Case Index

Case 0 '单击绘画按钮

MouseState=1

Case 1 '单击擦除按钮

MouseState=2

End Select

End Sub

Private Sub Picture1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)

If Button=1 And MouseState=2 Then

Picture1.FillStyle=0

Picture1.FillColor=RGB(255,255,255)

Picture1.ForeCOlOr=RGB(255,255,255)

Picture1.Circle(X,Y),50

ElseIF Button=1 And MouseState=1 Then

ISdraw=True

Picture1.CurrentX=X

Picture1.CurrentY=Y

End If

PiCture1.AutoRedraw=True

End Sub

Private Sub Picture1_MouseMove(ButtonAsInteger,ShiftAsInteger,X As Single,Y As Single) Picture1.ForeColor=RGB(0,0,0)

If Isdraw And MOuseState=1 Then

Picture1.Line-(X,Y)

End If

End Sub

Private Sub Picture1_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single) If Button=1 And MouseState=1 Then Isdraw=False

End Sub

程序中同时使用了MouseMove,MouseDown和MouseUP事件,当鼠标按下时触发MouseDown事件,当鼠标移动时触发MouseMove事件,线的起点为上次的终点。当鼠标释

放时触发MOUseUp事件,使变量Isdraw为False就不能画线。

12.2.2 员标指针

Windows程序中,经常利用不同形状的鼠标指针反映信息,如I型棒、十字线、沙漏等。

Visual Basic中,可以通过MousePointer属性和MouseIcon属性来设置鼠标指针的形状。

1.MousePointer属性

对象的MousePointer属性用来设置鼠标指向该对象时的鼠标指针形状,MousePointer 属性的取值见表12-3。缺省设置值为0-Default并显示成标准的Windows箭头指针。

表12-2MousePointer属性的取值和鼠标指针的形状

例如,要改变结果文本框Text1时鼠标的指针为I型:

Text1.MousePointer=3

2.MouseIcon属性

当MousePointer属性为99时,可以用MouseIcon属性将鼠标指针设置为任意形状。

设置MouseIcon属性的方法有两种:设计状态下在属性窗口中设置,或者在运行状态下用LoadPicture函数加载图形文件设置。

可以使用图标或光标文件宋设置鼠标指针。图标就是.ico文件,与V isual Basic的图标文件相同。光标就是.cur文件,本质上像图标一样是位图,但是,光标主要是表示鼠标指针的形状而创建的。

12.3 拖放操作

在运行Windows程序时,可以使用鼠标拖放功能方便地改变某些对象的位置,这种操作称为拖放。拖放的一般过程是:把鼠标光标移到一个对象上,按厂鼠标键,不要松开,然后移动鼠标,对象将随鼠标的移动而在屏幕上拖动,松开鼠标后,对象即被放下。通常把原来位置的对象称为源对象,而拖动后放下的位置的对象称为目标对象,在拖动过程中,被拖动的对象变为灰色。V isual Basic支持两种拖放,即控件拖放和OLE拖放。拖放包括两个操

作:按下鼠标按钮并移动控件的操作叫拖动(Dragging),释放按钮的操作叫放下(Dropping)。

12.3.1 控件拖放

控件拖放是指程序运行时将控件拖动到新的位置。在Visual Basic中,除菜单、计时器、对话框控件、图形控件等以外的控件都支持拖放。下面介绍与控件拖放有关的属性、事件和方法。

1.属性

(1)DragMode属性

该属性用来设置控件的拖放模式,共有两种:自动拖动模式(Automatic)和手动拖动模式(Manual)。当DragMode属性没置为0(默认值)时表示手工拖动,当DragMode属性为1时表示自动拖动。

如果DragMode属性值为1,则启用自动拖动模式。当用户在源对象上按下鼠标左键同时拖动鼠标,对象的图标便随鼠标指针移动到目标对象上,当释放鼠标时在目标对象上产生DragDrop事件。值得注意的是:如果没有进行代码设计,对象不会移动到新的位置上或加到目标对象中,用户一定要在目标对象的DragDrop事件中进行程序设计才能实现真正的拖放。在源对象被拖到目标对象上的过程中,如果经过其他对象,则在这些对象上产生DragOver事件,当然目标对象也会产生DragOver事件,这个事件发生在DragDrop之前。当源对象的DragMode属性值为1时,它不能再接受Click和MouseDown事件。

如果DragMode属性值为0,则启动手工拖动模式,此时,必须在MouseDown事件过程中,用Drag方法启动“拖”操作。当源对象的DragMode值为0时,它能够接受Click 和MouseDown事件,其他情况与自动拖动模式相同。

(2)DragIcon属性

在拖动控件的过程中,被拖动的控件并没有移动,随鼠标移动的是代表该控件的图标。拖动控件时,Visual Basic将控件的灰色轮廓作为缺省的拖动图标。对DragIcon属性进行设置,就可用其他图片代替该轮廓。设置DragIcon属性的方法与MouseIcon属性类似。

2.事件

(1)DragDrop事件

将源控件(图标)拖动到目标对象上后,松开鼠标按钮,则产生DragDrop事件。DragDrop 事件过程的一般格式为:

Private Sub对象名_DragDrop(Source As Control,X as Single,Y As Single)

说明:

①对象名是指鼠标指针所指的目标对象名。

②Source参数为正在被拖动的控件(源对象),可在事件过程中设置和使用该控件的属性和方法。例如:

Source.Enabled=False

③X、Y是拖放结束时鼠标指针的位置。

(2)DragOver事件

在拖动对象的过程中,当鼠标指针越过一个控件时,被越过的控件将产生DragOver事件。DragOver事件是当拖放操作正在进行时发生。DragOver事件过程的一般格式是:Private Sub 对象名_DragOver(Source As Control,X As Single,Y As Single,State As Integer) 说明:

①Source,x,y等参数的含义和DragDrop事件相同。

②State参数是一个整数,表示控件的转变状态。若为0(vbEnter)表示鼠标指针正在进入目标对象:若为1(vbLeave)表示正在离开目标对象;若为2(vbOver)表示正经过目标对象。

注意:在拖放事件过程中可以采用TypeOf函数宋判断源对象的控件类型,供程序识别。因为当源对象被拖放时,源对象作为Source参数传入事件过程中,Source为对象变量,它继承了源对象的所有属性和方法,通过判断源对象的数据类型,可对其进行属性设置和调用相应的方法进行操作。语法格式为:

If TypeOf 对象变量Is控件类型Then

其中,TypeOf函数的返回值为对象变量所引用控件的类型。

[例12-9]自动方式拖放图片。

问题分析:创建一个新的标准EXE工程,在窗体Form1上添加两个图片框Picture1和Picture2,设置Picture1的Picture为某一图片,如图12-6所示。

图12-6拖放图片

程序代码为:

Private Sub Form_Load()

Picture1.DragMode=1'自动拖放

End Sub

Private Sub Picture2_DragDrop(Source As Control,X As Single,Y As Single)

If Type Of Source Is PictureBox Then '源对象是叶;是图片框

Picture2.Picture=Source.Picture

End If

End Sub

12.3.2 Drag方法

Drag方法用于代码中对象的拖放行为,其语法格式如下:

对象名.DragAction

其中,参数Action的取值如表12-4使示。

表12-4Drag方法中Action参数的取值及其含义

数设置为VbEnddrag,则放下控件并引起DragDrop事件;如果将操作设置为VbCancel则取消操作。这里的效果与设置的情况类似,不同之处在于不引发DragDrop事什。

[例12-10]拖放操件应用程序示例。

启动一个新的工程,在窗体卜添加一个文本框,一个分组框。然后这两个控件的DragMode属性都改成1—Automatic。文本框的DragIcon属性足“d:\VB教程\拖放操作\BOOK.ico”,分组框的DragIcon属性是“d:\VB教程\拖放操作\phone01.ICO”。将窗体的Caption属性设置为“拖放文本框的图标是“书”,拖放分组框的图标是“电话机”。将以下过程添加到窗体的DragDrop事件中:

Private Sub Form_DragDrop(source As control,X As Single,Y As Single)

Source.Move X,Y

End Sub

程序执行时,将鼠标放在文本框上,鼠标指针变成书的图标,然后可以将文本框拖到新位置。将鼠标放在分组框上,鼠标指针变成电话机图标,然后可以将分组框拖到新位置。程序的执行结果如图12-7所示。由于屏幕硬拷贝不能包括鼠标指针,所以图中见不到“书”

和“电话机”图标。

图12-7拖放操作示例程序的执行结果

12.3.3 OLE拖放

OLE拖放是V isual Basic提供的最强大、最有用的功能之一,支持在控件和控件之间、在控件和其他Windows应用程序之间拖动文本和图形。OLE拖放包括从对象拖动数据和将拖动数据放入对象。

Visual Basic的几乎所有控件都支持OLE拖放。OLE拖放也分为自动拖放和手动拖放。自动拖放无需编写任何代码,因此比较容易实现。

[例12-11]文字的拖放。

问题分析:创建一个标准EXE程序,在Form1窗体中添加两个文本框Text1和Text2,输入以下代码:

Private Sub Form_Load()

Text1.OLEDragMode=1 '自动拖动源

Text2.OLEDropMode=2 '自动接收OLE拖放

End Sub

运行程序,文本框中输入若干字符,用鼠标选中Text1中的部分字符,然后拖动这些选中的字符到Text2上,释放鼠标。

习题十二

一.选择题

1.编写如下事件过程:

Private Sub Form_KeyPress(KeyAscii As Integer)

Print Chr(KeyAscii);

Print (KeyAscii)

End Sub

运行程序,按下“a”键输出结果为(B)a65。

(A)A65 (B)a65(C)65A(D)65a

2,在窗体上画一个命令按钮和个文本框,并把窗体的KeyPress属性设置为True,然后编写如下代码:

Dim All As String

Private Sub Command1_Click()

Text1.text=Ucase(A11)

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

All=All+Chr(KeyAscii)

End Sub

程序运行后,在键盘上输入“Hello”,单击命令按钮,则文本框中显示的内容为。

(A)HELLO(B)Hello (C)不显示任何信息(D)出错

3.编写如下事件过程:

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)

Print Chr(KeyCode):

Print KeyCode

End Sub

运行程序后,按下“E”输出为。

(A)E69 (B)e69 (C)69E (D)69e

4.将窗体的KeyPreview属性设置为True,然后编写如下过程:

Private Sub Form_KeyDown(KeyCode AS Integer,Shift As Integer)

Print chr(KeyCode);

End Sub

Private Sub Form_KeyUp ( KeyCode As Integer , Shift As Integer)

Print Chr(KeyCode+32)

End Sub

当按下“a”时,输入为。

(A)Aa(B)A,A(C)a,a (D)a,A

5.编写以下事件过程:

Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)

Key Code=KeyCode+32

Print Ucase(Chr(KeyCOde))

End Sub

运行程序,当按下“A”键时,输出为A。

(A)A(B)65 (C)a (D)97

6.编写如下事件程序:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If Shift=3 And Button=2 Then

Print "BBBB"

End If

End Sub

运行后,为了在窗体上输出“BBBB”,应执行的操作为 D 。

(A)同时按下Shitt键和鼠标左键。(B)同时按下Shin键和鼠标右键。

(C)同时按下Ctrl,Alt和鼠标左键。(D)同时按下Ctrl,Shift和鼠标右键。7.编写如下程序:

Dim sum As Integer

Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If Button=1 Then

sum=sum+1

ElseIf Button=2 Then

Sum=sum-1

End If

End Sub

Private Sub Command1_Click()

Print sum

End Sub

运行程序,当鼠标在窗体上左击3次,右击1次,再单击按钮,输出为A。(A)l (B)-1 (C)2 (D)4

8.编写以下程序:

Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If Shift=And Button=Then

Print "HELLO"

End If

End Sub

运行程序后,当同时按下Shift键和Alt键并用鼠标左击时,输出“HELLO',请选择程序中Shift和Button参数的值 D 。

(A)1,3 (B)2,1 (C)3,2 (D)5,1

9.在某个程序中,想要把鼠标的光标变为沙漏形状,则Mousepointer的值应为 D 。

(A)1 (B)3 (C)14 (D)11

二.填空题

1.在执行KeyPress事件过程时,KeyAscii表示按键的ASCIIA码值。

2.把窗体的KeyPreview属性设胃为True,并编写如下事件过程:

Private Sub Form_KeyPress(KeyAscii As Integer)

Print KeyAscii

End Sub

当按下“a”键时,输出为 6 5

3.在窗体上画一个文本框,然后编写如下过程:

Private Sub Text1_KeyPress(KeyAscii As Integer)

Dim cha As String

Cha=Chr(KeyAscii)

KeyAscii=Asc(Ucase(cha))

Text1.text=String(6,KeyAscii)

End Sub

运行程序后,如果在键盘上输入“a”,则文本框中显示的内容为AAAAAAA。

4.Private Sub Form_Load()

Show

Text2.Text=" "

Text1.Text=" "

Text.SetFocus

End Sub

Private Sub Text2_KeyDown(KeyCode As Integer,Shift As Integer)

Text2.Text=Text1.text+Chr(KeyCode-4)

End Sub

程序运行后,若在text2文本框中输入“efghi”,则Text1中的内容为空字。

5.将窗体的KeyPreview属性设置为True,然后编写如下过程:

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)

Print Chr(KeyCode)

End Sub

Private Sub Form_KeyUp(KeyCode As Integer,Shift As Integer)

Print Chr(KeyCode+32)

End Sub

当按下“e”时,输出为:Ee。

6.编写一个程序,使得当单击鼠标左键时就可以开始连续画直线,若要停止右击鼠标

即可。

Private Sub Form_MouseDown(Button As integer,Shift As Integer,X As Single,Y As Single) Static blndrawnow AS Boolean

If blndrawnow Then

Form1.Line-(X,Y)

End If

If Button=2 Then

blndrawnow = False

ElseIf Button = 1Then

Form1.CurrentX=X

Form1.CurrentY=Y

Blndrawnow=True

End If

End Sub

7.编写一个程序,使得当单击鼠标左键时就可以开始画直线,若要停止松开鼠标键即可。

Private draw As Boolean

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

CurrentX = X

CurrentY = Y

draw = True

End If

End Sub

Private Sub Form_Mousemove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If draw = True Then

Line -(X, Y)

End If

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) draw = False

End Sub8.编写使得当鼠标移动到按钮上时,变为十字线,移到窗体上时,变为默认形状。

三.程序设计题

1.在窗体上画两个文本框,然后编写程序。程序运行后,如果在第一个文本框中输入A、B、C、D或a、b、c、d,则在第二个文本框中显示EFDH。

2.在窗体上画一个文本框、一个图片框和一个命令按钮。编写程序,使得当鼠标光标唯一位于不同的控件或窗体上时,鼠标光标具有不同的形状,此时如果按下鼠标右键,则显示相应的信息。例如,当鼠标光标移到图片框上时,如果按下鼠标右键,则用一个信息框显示:“现在鼠标光标位于图片框中”。要求:在文本框和窗体上的鼠标光标使用系统提供的光标形状,而图片框和命令按钮上的鼠标光标使用自定义的形状。

《VB选择结构程序设计》教学设计

《VB选择结构程序设计》教学设计 山东省临清市第二中学吴焕英 【案例背景】 高中信息技术新课程的实施,其课程目标定位于全面提升学生的信息素养,其课程的设置从知识与技能、过程与方法、情感态度与价值观三个方面实施这个课程目标。然而,众多的老师实施新课程后发现:教学内容的范围比以前更广泛了、课时远远不够、教学软硬件资源缺乏等诸多问题。因此,如何更有效地开展新课程教学,成为老师们迫切需要解决的问题。本教学案例从学生的实际情况出发,根据现有的数学、英语基础,结合简单的生活实例,引导学生进行探索式学习,问题从简单的英语口语入手,过渡到课题的研究学习。原本枯燥无味的VB程序设计,在简单、形象的生活实例下,激发了学生的思考与探索思维。这样的教学案例,值得我们反思研究、总结与完善。 【教材分析】 算法与程序设计是普通高中信息技术课程中选修模块之一,本模块旨在使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。 “选择结构”是教育科学出版社出版的高级中学课程标准实验教科书、算法与程序设计第二章第三节的内容,共分三课时,本课为第二课时。主要内容是用选择结构编写简单的程序解决具体问题。用选择结构编写简单的程序解决具体问题是在学生已经掌握了程序设计数据的表示与处理的基础上,理解了顺序结构的前提后提出的。 通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想,而且也为多分支选择结构的学习打下基础。 【学生分析】 高一的学生在数学课中已经有了算法和程序设计的基础,学生对事物的分析、综合能力及独立思考能力、分析解决问题的能力都有了一定的水平,在教师的有效引导下,有能力进行自我探究,如果用一种学生比较感兴趣的,能够贴近学生日常生活的例子来分析选择结构的话,那么学生会比较感兴趣。 【教学目标分析】 通过教师引导学生去探究、发现技术背后所蕴含的技术价值和技术思想,使其获得知识与技能的同时,理解和掌握过程与方法,这样才能够学会认知,学会做事,乃至学会生活,提高终生学习的能力、分析解决问题的能力,满足其终身发展的需要,成为适应信息社会的公民。 因此本节课的目标有以下几项:

VB编程的键盘控制

V B编程的键盘控制Prepared on 21 November 2021

VB编程的键盘控制 我们利用VisualBASIC编写程序,多数情况只涉及到鼠标操作(如单击、双击、拖动等),但如果程序中需要实现文本编辑、热键激活或利用键盘进行游戏控制等功能时,将不可避免地碰到键盘捕获及处理的问题。下面,我们就来看一看VB编程中如何进行键盘控制。 一、概述 在VB中,很多控件都提供了键盘输入功能(如文本框、组合框等),但它们对键盘的处理较简单,遇到复杂一点的要求即无能为力。因而VB提供了KeyPress、KeyUp、KeyDown三种键盘事件,当用户按键时,会触发这三种事件,而且窗体和接受键盘输入的控件都识别这三种事件。下表对这些事件作了描述。 键盘事件触发原因 KeyPress按下某ASCII字符键 KeyDown按下键盘的任意键 KeyUp释放键盘的任意键 KeyPress事件无法检测到的情况: SHIFT、CTRL和ALT键的特殊组合。 光标控制键。 HOME、END、PAGEUP、PAGEDOWN等。 数字小键盘的数字键与打字键盘数字键的区别。 不仅响应按键操作而且响应释放键操作(KeyPress只响应按键操作)。 键盘事件彼此不相互排斥。按下某键时将生成KeyDown和KeyPress事件,而松开此键时生成KeyUp事件。当用户按下一个KeyPress不能检测的键时将触发KeyDown事件,松开此键时生成KeyUp事件。若使用KeyUp和KeyDown事件应确保KeyPress事件的功能不够用,通常编写KeyPress事件的代码比较容易。 二、KeyPress事件 在按下与ASCII字符对应的键时将触发KeyPress事件。ASCII字符集代表标准键盘的字母、数字和标点符号以及部分控制键(ENTER、TAB、BACKSPACE键等)。KeyDown和KeyUp事件能够检测其它功能键、编辑键和光标定位键。当处理标准ASCII字符时应使用KeyPress事件。例如,如果希望将输入到文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写:PrivateSubText1_KeyPress(KeyAsciiAsInteger) KeyAscii=Asc(Ucase(Chr(KeyAscii))) EndSub KeyAscii参数返回对应所按键的ASCII代码。 也可通过KeyPress事件识别部分控制键。例如,下述事件过程使用KeyPress检测用户是否正在按BACKSPACE键: PrivateSubText1_KeyPress(KeyAsciiAsInteger) IfKeyAscii=8ThenMsgBox"YouPressedtheBACKSPACEkey." EndSub 注:BACKSPACE键的ASCII值为8。 还可用KeyPress事件改变某些键的缺省行为。例如,当在文本框内按ENTER键就会结束当前行输入并将光标转到下一行(Multiline属性设为True)。在KeyPress事件中截断ENTER键(ASCII 值为13)就可避免这种情况:

利用VB建立鼠标键盘操作回放

利用VB建立鼠标键盘操作回放 很多的教学软件或系统监视软件可以自动记录回放用户的输入文字或点击按钮等操作操作,这个功能的实现是使用了Windows的Hook函数。本文介绍如何通过使用VB来实现鼠标键盘操作的纪录和回放。Windows提供API函数SetwindowsHookEx来建立一个Hook,通过这个函数可以将一个程序添加到Hook链中监视Windows消息,函数语法为: Public Declare Function SetWindowsHookEx Lib "user32" _ Alias "SetWindowsHookExA" _ (ByVal idHook As Long, _ ByVal lpfn As Long, _ ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long 其中参数idHook指定建立的监视函数类型。通过Windows MSDN帮助可以看到,SetwindowsHookEx函数提供15种不同的消息监视类型,在这里我们将使用WH_JOURNALRECORD和WH_JOURNALPLAYBACK来监视键盘和鼠标操作。参数lpfn 指定消 息函数,在相应的消息产生后,系统会调用该函数并将消息值传递给该函数供处理。函数的一般形式为: Hookproc (code: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall; 其中code为系统指示标记,wParam和lParam为附加参数,根据不同的消息监视类型而不同。只要在程序中建立这样 一个函数再通过SetwindowsHookEx函数将它加入到消息监视链中就可以处理消息了。 在不需要监视系统消息时需要调用提供UnHookWindowsHookEx来解除对消息的监视。WH_JOURNALRECORD和WH_JOURNALPLAYBACK类型是两种相反的Hook类型,前者获得鼠标、键盘动作消息,后者回放鼠 标键盘消息。所以在程序中我们需要建立两个消息函数,一个用于纪录鼠标键盘操作并保存到一个数组中,另一个用于 将保存的操作返给系统回放。 下面是具体的程序实现:首先建立一个新工程,在Form1中加入三个CommandButton控件用于控制消息钩子,另外还 可以增加若干Command或者TextBox控件用于检验操作回放的效果。然后在工程中增加一个模块文件,在模块中加入以下 定义和代码: Option Explicit Public Type EVENTMSG message As Long paramL As Long paramH As Long time As Long hwnd As Long End Type Public Declare Function CallNextHookEx Lib "user32" _ (ByVal hHook As Long, _

公开课VB程序设计教案

第四课学学程序设计—初步认识编程软件VB 教学目标: 知识目标:了解什么是程序设计语言和计算机程序以及语言的分类 过程与方法:培养学生的阅读总结和自主探索能力 情感态度与价值观:通过学生利用所学的知识解决实际问题,激发学生 的学习兴趣 教学重难点:了解什么是程序设计语言 启发学生创新思维 以任务为驱动,激发学生创新思维 教法:讲授法、任务驱动法 教学过程: 一、导入新课 教师运行游戏小程序,引起学生的兴趣,并打开程序的原代码说明编程并不很神秘。试运行游戏小程序,激发学生的学习兴趣。 二、教师讲授: 程序设计语言 教师活动:语言是人类交流思想、沟通感情最重要的工具。那么语言不通的人如何交流呢? 学生活动:请一个语言翻译或自己学会他人的语言 教师活动:计算机所做的事情均为人向机器下达的命令,那么操作作者又是通过什么语言同计算机进行沟通的呢? 程序设计语言的分类及特点

1、机器语言 教师活动:①计算机能听懂的语言(机器语言)②机器语言的实质(二进制语言)③二进制语言的特点。强调计算机内部只认识二进制学生活动:谈对二进制语言的感受 教师小结:机器语言的特点(二进制、计算机直接能懂、难以理解,与人类语言差距较大)汇编语言-用助记符号表示面向机器的程序设计语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程雪汇编语言翻译成机器语言。适合编写直接控制机器操作的程序,不容易使用。高级语言-最接近人的自然语言,即简单易学,它所编制的程序计算机执行时需要“翻译”,执行速度比二进制程序慢。 三:展示微课视频 VB简介、认识VB窗口、相关概念:1、对象的概念 2、属性的概念 3、事件和代码的概念。演示设计运行程序“奔跑的小汽车”依照微课演示编写程序“奔跑的小汽车” 四:学生体验 1、学生编写程序“奔跑的小汽车”,教师巡回指导。 2、试修改程序,让汽车倒车、速度变慢。 五、教学评价: 1、教师点评教师通过巡视,把部分学生修改的结果进行点评,指出典型的错误。 六、课后小结: 这节课,我们体验了用VB设计程序,了解程序有关知识。(回顾本节知

adb shell中模拟键盘鼠标事件

Android自动化测试初探-5:再述模拟键盘鼠标事件(adb shell 实现) 2010-07-28 17:01 上一篇博文中讲述了通过Socket编程从外部向Emulator发送键盘鼠标模拟事件,貌似实现细节有点复杂。其实Android还有一种更简单的模拟键盘鼠标事件的方法,那就是通过使用adb shell 命令。 1. 发送键盘事件: 命令格式1:adb shell input keyevent “value” 其中value以及对应的key code如下表所列: KeyEvent Value KEYCODE Comment KEYCODE_UNKNOWN 1 KEYCODE_MENU 在SDK2.1的模拟器中命令失效,sendevent命令可行 2 KEYCODE_SOFT_RIGHT 3 KEYCODE_HOME 4 KEYCODE_BACK 5 KEYCODE_CALL 6 KEYCODE_ENDCALL

KEYCODE_0 8 KEYCODE_1 9 KEYCODE_2 10 KEYCODE_3 11 KEYCODE_4 12 KEYCODE_5 13 KEYCODE_6 14 KEYCODE_7 15 KEYCODE_8 16 KEYCODE_9 17 KEYCODE_STAR

KEYCODE_POUND 19 KEYCODE_DPAD_UP 20 KEYCODE_DPAD_DOWN 21 KEYCODE_DPAD_LEFT 22 KEYCODE_DPAD_RIGHT 23 KEYCODE_DPAD_CENTER 24 KEYCODE_VOLUME_UP 25 KEYCODE_VOLUME_DOWN 26 KEYCODE_POWER 27 KEYCODE_CAMERA 28 KEYCODE_CLEAR

VB编程的键盘控制

VB编程的键盘控制 我们利用Visual BASIC编写程序,多数情况只涉及到鼠标操作(如单击、双击、拖动等),但如果程序中需要实现文本编辑、热键激活或利用键盘进行游戏控制等功能时,将不可避免地碰到键盘捕获及处理的问题。下面,我们就来看一看VB编程中如何进行键盘控制。 一、概述 在VB中,很多控件都提供了键盘输入功能(如文本框、组合框等),但它们对键盘的处理较简单,遇到复杂一点的要求即无能为力。因而VB提供了KeyPress、KeyUp、KeyDown 三种键盘事件,当用户按键时,会触发这三种事件,而且窗体和接受键盘输入的控件都识别这三种事件。下表对这些事件作了描述。 KeyDown和KeyUp事件提供了最低级的键盘响应,可用这些事件检测KeyPress事件无法检测到的情况: ◆SHIFT、CTRL和ALT键的特殊组合。 ◆光标控制键。 ◆HOME、END、PAGEUP、PAGEDOWN等。 ◆数字小键盘的数字键与打字键盘数字键的区别。 ◆不仅响应按键操作而且响应释放键操作(KeyPress只响应按键操作)。 键盘事件彼此不相互排斥。按下某键时将生成KeyDown和KeyPress事件,而松开此键时生成KeyUp事件。当用户按下一个KeyPress不能检测的键时将触发KeyDown事件,松开此键时生成KeyUp事件。若使用KeyUp和KeyDown事件应确保KeyPress事件的功能不够用,通常编写KeyPress事件的代码比较容易。 二、KeyPress事件 在按下与ASCII字符对应的键时将触发KeyPress事件。ASCII字符集代表标准键盘的字母、数字和标点符号以及部分控制键(ENTER、TAB、BACKSPACE键等)。KeyDown 和KeyUp事件能够检测其它功能键、编辑键和光标定位键。当处理标准ASCII字符时应使用KeyPress事件。例如,如果希望将输入到文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写: Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = Asc(Ucase(Chr(KeyAscii))) End Sub KeyAscii参数返回对应所按键的ASCII代码。 也可通过KeyPress事件识别部分控制键。例如,下述事件过程使用KeyPress检测用户是否正在按BACKSPACE键:

VC 模拟鼠标和键盘输入

VC 模拟鼠标和键盘输入 - 天下 - 博客频道 - https://www.wendangku.net/doc/fb16045284.html, 模拟鼠标点击: 1、这里是鼠标左键按下和松开两个事件的组合即一次单击: mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) 2、模拟鼠标右键单击事件: mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 ) 3、两次连续的鼠标左键单击事件构成一次鼠标双击事件: mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ) 4、使用绝对坐标 MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0 需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,如果dx,和dy,用0,0表示,这函数认为是当前鼠标所在的点--直接设定绝对坐标并单击 mouse_event(MOUSEEVENTF_LEFTDOWN, X * 65536 / 1024, Y * 65536 / 768, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, X * 65536 / 1024, Y * 65536 / 768, 0, 0); 其中X,Y分别是你要点击的点的横坐标和纵坐标 模拟键盘输入: [cpp] void EnterString(const char* text) { bool bShift = false; size_t length = strlen(text); for(size_t index = 0;index < length;index++) { int val = text[index]; if(val >= 97 && val <= 122) //小写a-z { val -= 32; bShift = false; } else if(val >= 65 && val <= 90) //大写A-Z { bShift = true;

《VB程序设计》教案

教案首页

教案纸 2009年9 月8 日教学手段: 利用多媒体机房演示安装Visual Basic 6.0,并对该开发环境进行分析介绍。让学生明确课程的性质和地位、学习本课程要达到的要求。导入新课: 第1课Visual Basic简介 1.1可视化程序设计(讲授法;图文并茂) 课堂讲解本任务要求了解可视化程序设计的概念。 1.2面向对象程序设计(讲授法) 课堂讲解本任务要求了解面向对象程序设计的概念。 1.3 VB6.0的运行安装和启动(边讲边练) 课堂讲解本任务要求掌握VB6.0的运行安装和启动方法。 1.4 VB6.0集成开发环境(边讲边练) 课堂讲解本任务要求熟悉VB6.0开发环境。 本课小结: 面向对象程序设计 可视化程序设计 布置作业: P20页习题一2、3,预习:第2课

教案首页

教案纸 2009年9 月9 日教学手段: 利用多媒体机房边讲边演练。 复习提问: 什么是面向对象?以及面向对象的方法和属性是什么? 导入新课: 第2课VB6.0应用程序的创建及管理 2.1创建VB6.0应用程序的步骤(演、讲、练) 课堂讲解本任务要求掌握创建VB6.0应用程序的步骤。 学生课堂完成任务: (1)建立用户界面的对象; (2)设置对象的属性值。 (3)编写程序代码,建立事件过程。 (4)保存和运行应用程序。 2.2 VB6.0的工程管理(演、讲、练) 课堂讲解本任务要求掌握VB6.0工程管理的方法。 2.3使用帮助信息(边讲边练) 课堂讲解本任务要求掌握帮助信息的使用方法。 本课小结:略 布置作业: P22页上机实验一4 预习:第3课

JAVA模拟键盘鼠标操作

//可以在eclipse下直接运行的示例程序: package key_robot; import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; public class key_robot { public key_robot() { } // 鼠标单击,要双击就连续调用 private static void pressMouse(Robot r, int m, int delay) { r.mousePress(m); r.delay(10); r.mouseRelease(m); r.delay(delay); } // 键盘输入方法 private static void pressKeys(Robot r, int[] ks, int delay) { for (int i = 0; i < ks.length; i++) { r.keyPress(ks[i]); r.delay(10); r.keyRelease(ks[i]); r.delay(delay); } } public static void main(String[] args) throws Exception { final Robot rb = new Robot(); new Thread() { public void run() { rb.delay(2000); // 模拟回车 rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); } }.start();

初识VB》教学设计

《初识V B》教学设计一、学生分析 本节课的授课对象为初三年级学生,这阶段的学生理解能力和接受能力较强。初一年级时学生已学习了一些程序设计语言的概念,知道计算机能直接认识的语言为机器语言,为本节课的学习打下了一定的基础。 二、教材内容分析 1、本节的主要内容及在本章中的地位 本节课教学内容为九年级下册第1章第1、2节的内容,主要学习程序、程序设计语言的概念和VB的创建工程、设计界面、编写程序、保存文件、运行程序等操作方法 2、教学重点、难点 重点:程序的概念和作用、创建VB程序的一般步骤和方法 难点:程序的作用、窗体文件和工程文件的保存 3、课时安排:1节 三、教学目标 1、知识与技能 (1)了解程序的概念以及程序在计算机中的作用 (2)了解程序设计语言的不同类型、特点和发展趋势 (3)了解程序设计的方法 (4)了解VB程序设计环境,知道在VB程序设计环境中创建程序的一般步骤和方法 (5)了解VB,学会用VB创建第一个程序 2、情感态度价值观 (1)注重学生的自学能力的培养。

(2)鼓励学生动手、动脑,培养勤于动手、主动探究的精神。 (3)培养学生利用信息技术解决实际问题的能力。 四、教学理念和方法 1.对于程序与程序设计语言等概念,学生学习起来较枯燥,故先安排学生带着教师提出的几个问题,看书思考和自学,再由教师组织学生个别回答、师生举例、师生讨论、归纳等活动来将几个概念弄清楚。 2.对于VB软件的学习,教师先展示一个由VB开发的小游戏,师生一起参与游戏的使用,让学生感受到VB软件的实用性,充分调动学生积极使用VB开发小程序的愿望,再由教师示范讲解VB程序设计环境中创建程序的一般步骤和方法,最后由学生动手尝试使用VB。 五、教学资源 教学硬件:教师机1台、学生机60台、液晶投影仪1部 教学软件:windows xp、达道多媒体教学软件、自制的教学课件 五、教学过程设计

模拟键盘鼠标事件

android中的MotionEvent 及其它事件处理 2014-09-18 08:47 7386人阅读评论(0) 收藏举报 MotionEvent对象 当用户触摸屏幕时将创建一个MotionEvent对象。MotionEvent包含关于发生触摸的位置和时间等细节信息。MotionEvent对象被传递到程序中合适的方法比如View对象的onTouchEvent()方法中。在这些方法中我们可以分析MotionEvent对象那个,以决定要执行的操作。 MotionEvent对象是与用户触摸相关的时间序列,该序列从用户首次触摸屏幕开始,经历手指在屏幕表面的任何移动,直到手指离开屏幕时结束。手指的初次触摸(ACTION_DOWN 操作),滑动(ACTION_MOVE操作)和抬起(ACTION_UP)都会创建MotionEvent对象。所以每次触摸时候这三个操作是肯定发生的,而在移动过程中会产生大量事件,每个事件都会产生对应的MotionEvent对象记录发生的操作,触摸的位置,使用的多大压力,触摸的面积,合适发生,以及最初的ACTION_DOWN和时发生等相关的信息。 在设置事件时我们有2种设置的方式,一种是委托式一种是回调式。第一种就是将事件的处理委托给监听器处理,你可以定义一个View.OnTouchListener接口的子类作为监听器,其中有onTouch()方法。而第二种是重写View类自己本身的onTouchEvent方法,也就是控件自己处理事件。onTouch方法接收一个MotionEvent参数和一个View参数,而onTouchEvent方法仅接收MotionEvent参数。这是因为监听器可以监听多个View 控件的事件。通过MotionEvent方法getation可以得到该Motionevent具体是哪个操作如ACTION_DOWN。 1、MotionEvent中getAction()与getActionMasked()的区别 如果我们在监听Ontouch()里面测试的时候会发现,这两个返回值竟然是一样的。查询API 我们发现ACTION_MASK说明是:Constant Value: 255 (0x000000ff)。也就是哦0Xff. public final intgetAction () Return the kind of action being performed. Consider using getActionMasked() and getActionIndex() to retrieve the separate masked action and pointer index. 翻译意思大概是返回action的类型,考虑使用getActionMasked()和getActionIndex()来获得单独的经过掩码的action和触控点的索引. public final intgetActionMasked () Return the masked action being performed, without pointer index information. Use getActionIndex() to return the index associated with pointer actions.

VB常用快捷键

VB常用快捷键 窗体设置,控件布局时用: alt+v+x可以快速显示出工具框 Alt+P+N 引用 ctrl+左右键头可以移动控件 shift+左右键头调整控件大小 F7 切换到编辑窗口 Shift+f7 切换代码窗口 开发代码,调试代码都能用的: Ctrl+C复制 Ctrl+V粘贴 Ctrl+X剪贴 Ctrl+F查找 开发代码时用的: Tab 向右推 Shift+Tab 向左推 Ctrl+H 替换 Ctrl+J 呵呵,有点显丑。有几个函数。老要看总是记不住,呵呵(Alt+→)ctrl+home jump to 首行 ctrl+end jump to 末尾 调试时使用的: F5 运行 F8 断点运行 F9 设置/清除断点 Ctrl+G 立即窗口 Shift+F2 到定义处 Ctrl+Shift+F9 清除所有断点 Ctrl+shift+F2 到上次编辑处 Ctrl+PauseBreak 强行暂停程序(专门对付死循环之类的) shift+F9 可以监视表达式 Ctrl+W 编辑监视窗口 Ctrl+n n Enter 偶经常要另开一个程序先做试验,你们可能很少用吧?呵呵以上几个,是我使用中最多的。当然。其它的我也有使用。如:Ctrl+J(所选控件置前),Ctrl+J(所选控件置底),F7,Shift+F4还有那些Windows通用的那些快捷

键:Ctrl+C,Ctrl+V ,哈哈,这二个快捷键,偶好像使用次数。也可以在所有使用快捷中前几名呢!哈哈! 1、F1:显示MSDN帮助。当然你要安装MSDN,否则得不到真正的帮助了 2、F2:显示对象浏览器。这里你可以看到对象的各种属性、方法与事件 3、F3:查找一下个满足条件的内容 4、F4:显示当前选中控件的属性窗体 5、F5:运行程序(https://www.wendangku.net/doc/fb16045284.html,则是F8了) 6、F7:由窗体设计切换到对应的代码窗体 7、F8:单步执行程序 8、F9:切换断点 9、Alt+A:打开外接程序菜单 10、Alt+D:打开调试菜单 11、Alt+E:打开编辑菜单 12、Alt+F:打开文件菜单 13、Alt+H:打开帮助菜单 14、Alt+I:打开图表菜单 15、Alt+O:打开格式菜单 16、Alt+T:打开工具菜单 17、Alt+P:打开工程菜单 18、Alt+R:打开运行菜单 19、Alt+U:打开查询菜单 20、Alt+Q:退出 21、Alt+V:打开视图菜单 22、Alt+W:打开窗口菜单 23、Alt+→:根据输入的字符检索出可以使用的关键字 24、Tab:让选中的代码,集休缩进 25、Shift+F2:查看当前光标所在的变量或函数、子过程的定义。这一快捷键很方便,比如程序中有一个 call PubFunction ,你只要将鼠标在PubFunction 任意一处点中,然后按Shift+F2就可以直接转到函数的声明处。 26、Shift+F4:打开属性页窗口,与F4不一样哦 27、Shift+F5:重新启动 28、Shift+F7:由代码窗体切换到对应的窗体设计界面 29、Shift+F8:逐过程单步执行。按过程进行调试 30、Shift+F9:快速监视 31、Shift+Tab:让选中的代码集体凸出

总结Selenium WebDriver中一些鼠标和键盘事件的使用

本文将总结Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展。举例说明扩展Alt+PrtSc 组合键来截取当前活动窗口并将剪切板图像保存到文件。 在使用Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为。比如使用鼠标单击、双击、右击、拖拽等动作;或者键盘输入、快捷键使用、组合键使用等模拟键盘的操作。在WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是Actions 类,在使用该类的过程中会配合使用到Keys 枚举以及Mouse、Keyboard、CompositeAction 等类。 其次,在实际测试过程中,可能会遇到某些按键没办法使用Actions、Keys 等类来实现的情况。比如通过使用Alt+PrtSc 组合键来实现截取屏幕当前活动窗口的图像,在Keys 枚举中,因为没有枚举出PrtSc 键,所以没办法通过Action 的KeyDown(Keys) 来模拟按下这个动作。 再次是在自动化测试中,可能会遇到一些附件、文件上传的场景,或者是多文件上传,这些在Selenium2.0 之后,可以直接使用WebElement 类的sendKeys() 方法来实现。 下面就分别介绍这些情况的具体使用。 鼠标点击操作 鼠标点击事件有以下几种类型: 清单1. 鼠标左键点击 Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作 action.click(driver.findElement(https://www.wendangku.net/doc/fb16045284.html,(element)))// 鼠标左键点击指定的元素 清单2. 鼠标右键点击 Actions action = new Actions(driver); action.contextClick();// 鼠标右键在当前停留的位置做单击操作 action.contextClick(driver.findElement(https://www.wendangku.net/doc/fb16045284.html,(element)))// 鼠标右键点击指定的元素 清单3. 鼠标双击操作 Actions action = new Actions(driver); action.doubleClick();// 鼠标在当前停留的位置做双击操作

VB 有关鼠标的操作

VB 有关鼠标的操作   假如没有鼠标,电脑的普及率绝对没有目前这么高。在windows下,鼠标的作用不亚于键盘。因此,在VB中设计基于windows下的应用程序,鼠标的操作和设计是非常重要的。 一、鼠标的移动、按键事件 要想在VB程序中自如应用鼠标,先要了解有关鼠标的事件,并学会如何编写这些事件过程。最常见的鼠标事件有: 当在某个对象上移动鼠标、按下鼠标按键、释放鼠标按键时均会触发鼠标事件,它们分别是:MouseMove、MouseDown、MouseUp。   这三个鼠标事件过程均会返回四个参数:Button As Integer, Shift As

具体解释如下: 1、 MouseDown事件 当单击鼠标上的任何一个按键之后,都会引起MouseDown事件。许多对象都有这个事件。如用鼠标在窗体上单击,可以引发这个事件,用鼠标单击“按钮”“标签”“文本框”等对象也可以引发这个事件。该事件还带回来不少参数,下面是鼠标单击窗体任何位置所引发的MouseDown事件,单击其它对象所带回的参数与此相同: Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Integer,Y As Integer)   End Sub 其中: (1)、Button参数 Button参数带回来的信息是用户按了鼠标上的哪能一个键,左键?右键?还是中间键? Button=1,说明用户按的是鼠标的左键; Button=2,说明用户按的是鼠标的右键; Button=4,说明用户按的是鼠标的中间键;   (2)、Shift参数 Shift参数带回来的是用户按鼠标按键时是否同时按下了键盘上的Shift、Ctrl、Alt键。 Shift=1,说明用户在按下鼠标按键的同时,还按下了键盘上的Shift键;Shift=2,说明用户在按下鼠标按键的同时,还按下了键盘上的Ctrl键;

USB模拟鼠标与键盘使用说明

第一章使用说明 1.1 功能简介 本例程是用实验板来模拟鼠标或键盘,即将相关程序下载到单片机,并将学习板与电脑通过U口连接后,本学习板可以当作U口的鼠标或者键盘来用。 其中能够模拟实现的鼠标功能为:鼠标左移、右移、上移、下移,鼠标左键按下和右键按下。 能够模拟实现的键盘功能为:数字1和2的键入、SHIFT和ALT功能键的键入、大小写切换和小键盘数字键功能的键入。 本例程共用到学习板上的六个按键,位于矩阵键盘左上角的S6、S7、S10、S11、S14和S15。 1.2鼠标的信息说明 将UsbMouse.hex文件下载到单片机中,且之后保证USB1口(位于学习板左上方)与电脑的U口处于连接状态(USB1口即为TX-1C开发板的U口)。 稍等片刻,便会先后在电脑屏幕的右下角出现下面两个提示(此提示只在第一次安装时出现): 图1.1 系统发现新硬件提示 图1.2安装成功提示 右键单击“我的电脑”,选中“管理”项,点击并进入,在其左侧的项目栏里点击“设备管理器”,便会发现其中多了如下一个设备,也就是我们的TX-1C开发板所模拟的鼠标,如图1.3所示。

图1.3 设备描述显示 双击“USB人体学输入设备”,会弹出如图1.4和图1.5的属性描述 图1.4 属性描述---常规选项卡

图1.5 属性描述---详细信息选项卡 1.3 鼠标的使用说明 在使用USB模拟鼠标与键盘功能之前,请确保将芯片PDIUSBD12左侧的两根插针用跳帽连接起来(这两根跳帽是用于芯片PDIUSBD12向单片机发出中断的连接线)!!! 总共使用到的矩阵键盘中的六个按键的功能分别如表1.1所示 据此, 面上实验一下,体会自制鼠标的乐趣。 1.4 键盘的相关说明 将文件夹“键盘实例”中的UsbKeyboard.hex文件下载到单片机中,并通过USB 线将TX-1C学习板与电脑U口连接后,同样会出现如图1.1.、图1.2类似的安装信息(也是在第一次安装时提示,以后都不再提示,除非更改程序中的相关设备描述信息,让电脑以为是一个以前从未连接过的设备连接了。)同样的打开设备管理器,也可以找到如图1.3、图1.4、图1.5类似的信息。在此就不再赘述了。下面列出相关按键的功能,如表1.2所示。

VB程序设计教案

VB程序设计——选择结构 ■教学目标 1.知识与技能 1.了解选择结构的基本概念。 2.了解关系表达式与逻辑表达式的概念。 3.能利用VB中的条件语句实现简单的选择结构。 2.过程与方法 经历实践、分析、归纳,掌握IF语句的格式和功能。 3.情感态度与价值观 运用捉老鼠游戏,完善程序,发展学生思维的逻辑性及严谨的学习态度。 4.行为与创新 培养学生利用计算机的反馈作用进行探究学习的能力。 ■课时安排 安排2课时。 ■教学重点与难点 1.教学重点 让学生学会使用VB语言的If分支语句,掌握分支判断程序结构,来解决实际问题,并且培养学生的探索、创新能力。 2.教学难点 对解决问题的方法和步骤的理解,并能根据实际问题写出程序代码。■教学方法与手段

讲述与讨论、实验与验证。■课前准备 教学课件、实例程序 教学环 节教师与学生活动 设计意 图 设计情境、引入新课教师活动:让学生制作捉老鼠游戏 学生活动:积极参与。 教师活动:学生制作小游戏界面,教师指导,如果抓到小老鼠系统将会提示抓住老 鼠了。 一只小老鼠在草地上跑来跑去,现在要用鼠标控制敲钟它。敲中一次,就会弹出一 次信息框。我们将通过制作这个小游戏程序,学习程序设计语言IF条件判断语句。 由鼠标抓小老鼠同学们的不同选择引出本课的主题——选择结构。 通过制 作小游 戏使激 发学生 的思维 能力,并 引出本 课的内 容选择 结构 课堂小 结 小结总结本堂课的内容。 拓展活动编写“小游戏”界面。培养学生的探索、创新能力。培养学 生的创 新,探索 能力

VB程序设计——选择结构 ■教学目标 1.知识与技能 1.了解选择结构的基本概念。 2.了解关系表达式与逻辑表达式的概念。 3.能利用VB中的条件语句实现简单的选择结构。 2.过程与方法 经历实践、分析、归纳,掌握IF语句的格式和功能。 3.情感态度与价值观 运用捉老鼠游戏,完善程序,发展学生思维的逻辑性及严谨的学习态度。 4.行为与创新 培养学生利用计算机的反馈作用进行探究学习的能力。 ■课时安排 安排2课时。 ■教学重点与难点 1.教学重点 让学生学会使用VB语言的If分支语句,掌握分支判断程序结构,来解决实际问题,并且培养学生的探索、创新能力。 2.教学难点 对解决问题的方法和步骤的理解,并能根据实际问题写出程序代码。■教学方法与手段

高中信息技术vb程序设计教案

高中信息技术vb程序设计教案 精品文档 高中信息技术VB程序设计教案 我们知道,计算机系统是由硬件和软件两大部分组成的。硬件指的是各种机器设配,而软件则是人们为解决各种问题而编写的程序。 编写计算机程序需要使用计算机编程语言。计算机编程语言是人和计算机“对话”的桥梁。就像人类的语言一样,计算机编程语言也有很多。目前较为广泛使用的语言有“c++”、“pascal”、“basic”等。在众多的计算机编程语言中,以basic语言最为易学易用。 basic是英文beginner’s all purpose symbolic instruction code的缩写,意思为初学者通用符号指令代码,一直都是程序设计入门的首选语言。 1991年,visual basic(简称vb)面世,他是第三代basic语言,它不但秉承了basic语言的易学易用的优点,而且增加了图形界面设计工具。它简化了复杂的窗口程序编写过程,让编程者将更多的精力致力于问题的求解过程。 本单元将以简单的visual basic 应用程序实例作引导,介绍一些程序设计的基本思想与方法。 第一课:我的第一个vb程序 用vb来编程序并不是一件难事,不信,请往下看。 编写一个程序,运行时显示如下界面: 图简单的vb程序 1 / 3 精品文档

操作步骤如下: 一、新建一个工程 步骤1:启动vb5。单击【开始】?【程序】?【microsoft visual basic 】?【visual basic 】。 步骤2:在新建工程对话框(图)中选择【标准exe】。 visual basic把设计程序比作兴建工程。因此,启动vb5时首先要新建一个工程或打开一个工程文件。 创建一个新的工程时,visual basic将自动创建一个空窗体,并命名为 “form1”。窗体是程序运行的窗口。 图 vb的工作窗口 二、在窗体中新建对象 控件和对象在vb的窗口中有一个工具箱(一般在左边),工具箱中有很多“工具”,称为控件。单击工具箱中的控件,然后在窗体中拖放鼠标,就可以在窗体中绘制具体的控件,这些具体的控件就称为对象。 图 vb工具箱 步骤3:单击工具箱中的label(标签)控件,然后在窗体中拖放鼠标,窗体中就生成了一个新的对象,对象名为label1。如图。 三、修改对象的属性 步骤4:选中窗体中的一个对象,属性窗口就会显示出这个对象的所有属性,如图所示。 2 / 3 精品文档 属性属性就是对象的特征。每个对象都有很多属性。属性的设定有两种方法: 方法一:在属性窗口中修改属性值;操作方法如图所示。

vb 属性、方法和事件概述

Visual Basic 属性、方法和事件 属性、方法和事件概述 Visual Basic 的窗体和控件是具有自己的属性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。日常生活中的对象,如小孩玩的气球同样具有属性、方法和事件。气球的属性包括可以看到的一些性质,如它的直径和颜色。其它一些属性描述气球的状态(充气的或未充气的)或不可见的性质,如它的寿命。通过定义,所有气球都具有这些属性;这些属性也会因气球的不同而不同。 气球还具有本身所固有的方法和动作。如:充气方法(用氦气充满气球的动作),放气方法(排出气球中的气体)和上升方法(放手让气球飞走)。所有的气球都具备这些能力。 气球还有预定义的对某些外部事件的响应。例如,气球对刺破它的事件响应是放气,对放手事件的响应是升空。 如果能对气球编程的话,Visual Basic 代码将如下所示。其作用是设置气球的属性: Balloon.Color = Red Balloon.Diameter = 10 Balloon.Inflated = True 注意代码的语法,首先是对象(Balloon),接着是属性(Color),然后是赋值(Red)。重复这条语句,但是,换一个不同的值,就可以改变气球的颜色。属性也可以在程序设计阶段在“属性”窗口中设置。 调用气球的方法是这样的: Balloon.Inflate Balloon.Deflate Balloon.Rise 5 它的语法与属性的语法相似,对象(一个名词)后面紧跟着方法(一个动词)。在第三个例子中有一个附加项,称为一个参数,表示气球上升的高度。一些方法有一个或多个参数,它们对执行的动作做进一步的描述。 气球对一个事件的响应如下所示: Sub Balloon_Puncture() Balloon.Deflate Balloon.MakeNoise "Bang" Balloon.Inflated = False

相关文档