窗体控件的事件

窗体的存在周期中的事件:
在一个窗体卸载关闭时,我们知道会发生Unload事件,事实上,在Unload事件发生前,另一个重要事件会发生,即Form_QueryUnload事件,在此事件中,为用户提供停止卸载继续工作的机会,如下:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

End Sub
其中有两个参数:cancel:若设此参数为True,可阻止unload事件发生。
unloadmode:返回引起窗体卸载关闭的原因:

0为使用标题栏"关闭"("关闭"纽或标题栏的系统菜单栏),

1为代码中用unload me语句,2为Windows环境会话结束;3为Windows任务管理器关闭程序;4为MDI子窗体关闭。

在窗体的存在周期中,发生的窗体事件依次为:
Form_initialize(初始化)->Form_Load(加载)->form_Resize(调整尺寸)->form_Activate(激活)->Form_GotFocus(获得焦点)
->Form_Paint(打印)->Form_QueryUnload(为用户提供卸载工作的机会)->Form_Unload(卸载)->Form_Terminate(结束).

我们经常用unload me来关闭一个窗体,但此命令并不能将一个窗体从内存中完全清除,要想完全移走窗体,应将窗体设置为nothing,即在form_unload事件中写:
set form1=nothing


有关鼠标和键盘的事件:

 

键盘事件:KeyPress、KeyDown、KeyUp
如果按下键盘上的一个会产生ASCII码的字符键时,就会出发KeyPress事件;如果按下或者释放键盘上的任意键,就会触发KeyDown或KeyUp事件

 

KeyPress事件过程的语法:
private sub <对象名>_Keypress (keyAscii as integer)

注:参数keyAscii参数是所按键的ASCII码值。

 

keyDown和keyUp事件

语法:
private sub <对象名>_event (KeyCode as integer,shift as integer)

 

注:

(1)event是键盘事件的名字,keydown和keyup
(2)参数keycode表示按下的物理键,通过ascii码值或键代码常数来识别。

(3)参数shift用于表示键盘事件发生时shift、ctrl和alt键的状态。shift是一个位域参数,由若干位组成,每个位的信息都指出某一状态是打开还是关闭。其中最右侧三位用来表示shift、ctrl和alt键的状态。具体参数查vb手册或msdn

 

鼠标事件:MouseDown、MouseUp、MouseMove

当用户按下鼠标时触发MouseDown事件;松开鼠标时触发MouseUp事件;鼠标指针移动时触发MouseMove事件。

 

语法:
private sub<对象名> _event (Button as integer,shift as integer,X as single, y as single)

 

注:

(1)参数Button 表示引起该事件的是鼠标的哪一个键。它是一个位域参数,其中三个最低位分别用来表示鼠标的左键、右键和中键。
(2)shift和键盘事件中的一样
(3)参数x和y表示鼠标指针的位置


有关拖放事件

dragdrop事件:当源对象被拖动到目标对象上并释放鼠标键,或者以参数值vbEndDrag调用Drag方法时,将触发目标对象的DragDrop事件

 

语法格式:
private sub <对象名>_DragDrop (Source as control,x as single,y as single )

 

DragOver事件:当源对象被拖动经过目标对象时,触发该对象的DragOver事件。

 

语法格式:
private sub <对象名>_ DragOver (Source as control,x as single,y as single,state as integer)

注:
state表示控件的转变状态,取值为vbEnter、vbLeave、vbOver,表示源对象正在进入、正在离开或经过目标对象。

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值