4.4 对象的事件
" o( s R$ V5 y. j 一。对象的事件是对象的动作和行为。vfp中对象的事件可通过用户操作、程序代码或系统触发。只有当事件发生时,事件的程序才会运行。如果没有任何事件发生,则整个程序就处于停滞状态。比如在第一章所举的实例中,运行表单后,如果我们什么也不做,则程序处于停顿状态。我们在"半径"文本框中输入一个半径,然后单击"计算"按钮,则触发命令按钮的click事件,内部的代码得到执行,计算出圆的面积显示在第二个文本框中。所以说,vfp程序是由事件驱动的程序。9 s+ p/ B% b! }; A3 s0 e
二。事件的分类:
3 E, t! _! D) F4 ^$ x% I! R' a 1.鼠标事件:所谓鼠标事件,就是在vfp应用程序的运行界面中,用鼠标对其中的对象进行操作所触发和事件。
6 z8 Q3 E7 m; Q! R (1).Click事件:是鼠标单击时所产生的事件。click事件既可由用户触发,也可由执行事件的程序代码触发。- \; k" L: j% P/ T" f
(2).Dbclick事件:双击鼠标时产生的事件。, r, x2 [3 i/ j( q% k
(3).mousedown和mouseup事件:当鼠标指针指向对象并按下鼠标左键时触发mousedown事件,当释放鼠标左键时触发mouseup事件。
7 G8 k6 Y6 R0 r8 Y (4).mousemove事件:在对象上移动鼠标指针时产生的事件。7 u8 o6 }, S0 S, ^* [# j7 G
(5).dragdrop事件:用鼠标拖动对象时产生的事件。
# p: S# Q/ K% t (6).downclick和upclick事件:当用鼠标单击组合框、列表框或微调器的向下箭头时,触发downclick事件;单击向上箭头时,触发upclick事件。3 E8 `5 ]8 a4 \8 k
2.键盘事件keypress:单击某一键时产生的事件。通常对获取焦点的对象,当按下键盘键并放开时触发keypress事件。参数:键ASCⅡ码,shiftctrlalt状态6 [# N: d; S7 j8 c& D
其中,shiftctrlalt状态为三键值的和。shift值为1,ctrl值为2,alt值为4
$ O# `, ~9 F# T* v 3.改变对象内容事件interactivechange:当用操作改变对象内容时交触发此事件,比如改变文本框中的内容将触发文本框的interactivechange事件。) V2 \" {+ _- Z0 s5 {: a5 d
4.对象的焦点事件:当对象取得焦点(focus)时,该对象将成为当前活动对象,操作将面向该对象。若文本框取得焦点,光标将在文本框中闪烁,指明编辑文本的当前位置。当命令按钮获得焦点时,按钮框内出现虚线框。属于控件焦点的事件有:获取焦点,失去焦点以及获取和失去焦点前触发的事件。
3 s# u9 k# O4 ~6 ~ (1).获取焦点事件gotfocus:当对象获取焦点时将触发gotfocus事件,而获取焦点的方法可以通过按tab键,鼠标单击对象或对对象使用 setfocus方法。注意:只有对象的enabled和visible属性为"真"(.T.)时,对象才能获得焦点。. i- J3 Y9 R: V A
(2).失去焦点事件lostfocus:当对象失去焦点时将触发该事件。对象可能因操作失去焦点,例如重新选择对象或单击另一对象;也可能在程序代码中执行获取焦点的方法setfocus.失去焦点的事件代码常用于取消gotfocus事件代码所做的工作,例如取消在执行gotfocus事件过程代码所提供的指导用户操作信息。
& w* J7 I& i/ X2 m (3).when事件:此事件在对象获取焦点前发生。如果when事件返回真值,则对象可获取焦点;否则对象不能获取焦点。, W2 t3 \9 F. ^1 c; G
(4).vaid事件:在对象失去焦点前触发此事件,以控制对象是否真的失去焦点。若vaid返回真值,对象才可失去焦点;否则对象不会失去焦点。 |