第十章 一、KeyPress事件
% S. y+ h4 Z( n( u8 e, r 在窗体上画一个控件(指前面所讲的可以发生KeyPress事件的控件),并双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可定义KeyPress事件过程。一般格式为:
+ Y5 G* A! l8 g/ y& L7 ` Private Sub Text1 _ KeyPress(KeyAscii As Integer) ~& z" c; a/ L6 Q1 r
End Sub; f- x1 r4 B: O0 j6 n7 K' w( V, O$ V
二、KeyDown和KeyUp事件
6 ^. }* o8 s m, H KeyDown和KeyUp事件的参数也有两种形式,其中
4 b7 y- M, _, |- R Index As Integer
/ L0 Q" f- _" n; ^4 i. q; U! w6 r 只用于控件数组,而
) | K% u0 \& s2 O KeyCode As Integer,Shift As Integer
& N$ y% G5 ?/ }" ] 用于单个控件。 ]# y: N7 M7 h$ V- A
三、鼠标事件& I5 s3 g& M0 R% `
为了实现鼠标操作,Visual Basic提供了3个过程模板:
' j7 _7 |# O7 r2 y9 ?, K (一)压下鼠标键事件过程
5 h8 M) s$ O+ d3 ` Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)End Sub
9 \1 J& l. v) P2 g* L0 ^ (二)松开鼠标键事件过程" g- B( x' r! I8 W5 f- N
Sub Form_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single)End Sub5 q) Y; c1 o) `* i7 L
(三)移动鼠标光标事件过程
5 M$ P; `" U4 H7 Y5 A7 J( I9 h Sub Form_MouseMove(Button As Integer,Shift As Integer,x As Single,y As Single)End Sub" P( E7 G1 L8 |& {- P
四、鼠标光标的形状
5 @2 }# X8 P: v4 J# f (一)MousePointer属性) R+ P. Q% ?0 K+ V8 ~
鼠标光标的形状通过MousePointer属性来设置。该属性可以在属性窗口中设置,也可以在程序代码中设置。) J; V/ o: j o5 J4 Y
MousePointer的属性是一个整数,可以取0~15。4 R8 m6 s: Q1 ]
(二)设置鼠标光标形状
2 m; |2 P$ [9 w7 x5 K- {5 Z. j. F MousePointer属性可以通过代码设置,也可以通过属性窗口设置。
4 U( v" F% v' o4 c 1.在程序代码中设置MousePointer属性
! ` [' b5 n8 {4 N' \. ~/ a 在程序代码中设置MousePointer属性的一般格式为:对象.MousePointer=设置值& G; A. W! N8 f: T) S
2.在属性窗口中设置MousePointer属性
3 d% Z( \0 c' S2 I3 `0 W 单击属性窗口中的MousePointer属性条,然后单击设置框右端向下的箭头,将下拉显示MousePointer的15个属性值。* T; U! F4 r: ^6 [# b
3.自定义鼠标光标
; G0 m7 j8 x- U) ~ 如果把MousePointer属性设置为99,则可通过MouseIcon属性定义自己的鼠标光标。有以下两种方法:
: a- ^- ?; K9 U6 J c' N2 D0 p% \6 M. ?- k (1)如果在属性窗口中定义,可首先选择所需要的对象,再把MousePointer属性设置为“99-Custom”,然后设置MouseIcon属性,把一个图标文件赋给该属性(与设置Picture属性的方法相同)。
* l% o O$ I& y6 p (2)如果用程序代码设置,则可先把MousePointer属性设置为99,然后再用LoadPicture函数把一个图标文件赋给MouseIcon属性。
8 N( S% a: C- H! b2 L; l3 | 4.鼠标光标形状的使用# o0 @+ m' P, R& H6 k
在Windows中,鼠标光标的应用有一些约定俗成的规则。为了与Windows环境相适应,在应用程序中应遵守这些规则,主要有:
6 q/ u4 D9 v. R; K' V# p0 o (1)表示用户当前可用的功能,如“I”形鼠标光标(属性值3)表示插入文本;十字形状(属性值2)表示画线或圆,或者表示选择可视对象以进行复制或存取。% \- a9 F* i- j G7 }
(2)表示程序状态的用户可视线索,如沙漏鼠标(属性值11)表示程序忙,一段时间后将控制权交给用户。
, Q2 G/ r# W m* X! e+ F (3)当坐标(X,Y)值为0时,改变鼠标光标形状。
: s+ P; C% K# {: L/ |8 H, L 五、拖放
( ] r U6 m8 L& h+ @ (一)与拖放有关的属性、事件和方法; C' F5 ?* L( A& ?* e7 r
1.属性, e2 U- ~/ Z3 S, c. q
有两个属性与拖放有关,即DragMode和DragIcon, W% l& j" Z3 w
2.事件
: E/ l& @+ a3 X- y8 z5 U 与拖放有关的事件是DragDrop和DragOver。- J: C4 S0 Z+ D! L8 o, ~. h1 q8 s
(二)自动拖放$ |5 Y- j% O" j+ m5 c. K; T! U
(三)手动拖放 |