移动鼠标,触发了lblmj的MouseMove事件。 按“Z”键,触发了窗体的 KeyPress事件。 单击左键和右键,分别触发了两个PictureBox控件的MouseDown事件。 按“C”键,又触发了窗体KeyPress事件。 双击左键,触发了lbltb的DblClick事件。 单击左键,触发了Lbltb的MouseDown事件。 讲到现在,对于属性、方法、事件这三个概念,你弄懂了吗?
搞清楚了属性、方法、事件这三个概念,以后理解控件就更能从全方位去考虑,而不光是只从属性角度来看控件了。 现在来看一下用户的常用操作所产生的事件。 鼠标事件 Cilck:用户单击鼠标键时发生 DbLClick:用户双击鼠标键时发生 MouseDown:用户释放鼠标键时发生 MouseMove:移动鼠标时发生 键盘事件 KeyDown:在键按下时触发。(可获得一个KeyCode值) KeyUp:在键弹起时触发。(可获得一个KeyCode值) KeyPress:在键盘按下再弹起时发生。(它可获得KeyAscii值) 慢着,既然有了KeyDown和KeyUp,为什么还要KeyPress事件,我将键盘按下去后,到底是触发了KeyPress事件,还是KeyDown或KeyUp事件? 答案是,当我们按了一下键盘后,这三种事件都触发。 一般而言,大多数程序并不关心KeyDown事件来确定按下的键,KeyPress事件在触发后,能够获得一个KeyAscii值。它指键盘上的某个键与计算机ASCII码对应的值,如键“1”,KeyAscii为49;“A”,KeyAscii为65;“Enter”,KeyAscii为13。 当我们在KeyPress事件中将KeyAscii的值改为0后,就等于禁止键入。
(图四) 然而并不是所有键盘上的键都有其KeyAscii值,有时,我们程序要判断用户是否按了功能键,可要区别数字小键盘和常规数字键时,那么KeyAscii就无能为力了。此时可以考虑KEyDown和KeyUp事件,当用户击键后,它们能获得一个唯一的KeyCode值,从而判断用户到底按了键盘上的哪个键。可以说,键盘上大多数键(Tab、PrintScreen键除外),都有唯一的KeyCode序列号。 总而言之,我们编程序可以根据需要来确定所选用的事件,如果是针对文本操作,一般采用KeyPress事件较好,因为它能获得一个与ASCII码相通的KeyAscii值。 从这一节课中,我们了解到了Command_Button的一些常用知识。CommandButton俗称命令按钮,很多程序的代码,都是编写在CommandButton控件的Click事件中的。 在这一节中,我们还接触了事件这个概念。VB属于事件驱动程序,它的程序代码,大多是写进一个个事件过程中的,所以,我们除了要了解用户的常用鼠标事件和键盘事件外,还必须灵活掌握代码设计器中的事件选择框,它能为我们编程带来方便。 如果深入搞清了KeyAscii与KeyCode的区别,以及KeyPress与KeyDown和KeyUp的区别的话,可以使我们的编程水平再上一个档次。 |
|