程序员的知识教程库

网站首页 > 教程分享 正文

VB窗体常见事件深度剖析与实战应用

henian88 2025-02-09 12:24:18 教程分享 6 ℃ 0 评论

单击——Click事件



这是指用户在窗体上用鼠标左键或者右键单击而产生的事件,实际应用中不多见.



双击——DblClick事件



这是指用户在窗体上用鼠标左键双击而产生的事件,比如说Photoshop双击窗体会弹出打开对话框,这就是窗体双击事件的应用。


这里需要注意的是:


当双击窗体时,首先触发的是单击事件,然后才是双击事件。


初始化——Initialize事件



任何窗体生命周期中的第一个事件就是Form_Initialize事件。在创建窗体和控件之前,Initialize事件就会发生。可以在Initialize事件中初始化窗体的变量。



在窗体的Initialize事件中,控件还没有被创建,所以这里报错,既然现在还没有按钮,所以也就没有Caption属性。


加载——Load事件


窗体的Load事件不是由用户的操作引发的,而是由操作系统来发送的。当一个窗体被加载到内存中准备显现时,就会发生这个事件。我们经常利用这个事件进行窗体控件的初始化工作,比如给组合框的下拉列表加入条目,设置标签的标题等等。


需要注意的是,先是Initialize事件,再是Load事件,我们可以通过一个小实验来确定。


分别在Initialize和Load事件中弹出对话框,就能看出执行顺序:


示例效果和源码下载地址在最下方。


MouseDown、MouseMove、MouseUp事件


这三个事件主要是响应鼠标的操作。

你在窗体上按下鼠标,会触发MouseDown事件。

松开鼠标,会触发MouseUp事件。

移动鼠标,会触发MouseMove事件。

这三个事件不同于以上几个事件,他们都是有参数的,Button、Shift、X,Y,可以判定事件的详细信息,比如按下哪个键,鼠标的位置等等。

最典型的应用就是画图软件,其实就是利用窗体的这三个鼠标相关的事件完成的。


Button参数值

意义

0

没有按下任何键

1

左键被按下(默认)

2

右键被按下

3

左键、右键同时被按下

4

中间键被按下

5

左键、中间键同时被按下

6

右键、中间键同时被按下

7

左、右、中三个键同时被按下


Shift参数表明了鼠标事件发生时,键盘上的那一个控制键被按下。


Shift参数值

意义

0

没有按下转换键

1

按下Shift键

2

按下Ctrl键

3

按下Ctrl+Shift键

4

按下Alt键

5

按下Alt+Shift键

6

按下Alt+Ctrl键

7

按下Ctrl+Shift+Alt键


X,Y两个参数指定事件发生时鼠标的坐标。



我们通过一个示例来解释今天所讲的内容,程序运行分别先提示Initialize和Load事件,然后在Load事件中加载下拉列表的内容,并且单击和双击窗体的时候在窗口标题显示,鼠标可以在窗体上根据设置画线

代码:


效果如下:




即将被卸载——Form_QueryUnload事件


窗体即将被卸载时,窗体就会收到QueryUnload事件,这个事件有什么具体应用呢?拿Word来举例,当文档内容发生改变后,你关闭Word时会弹出对话框提示是否保存:




QueryUnload事件有两个整型参数,就是Cancel和UnloadMode,传递给事件过程的值能够反映卸载是如何引起的。




UnloadMode参数值:


参数值

常量

卸载原因

0

vbFormControlMenu

点击窗体右上角的X关闭

1

vbFormCode

用Unload命令关闭

2

vbAppWindows

系统关机引起的关闭

3

vbAppTaskManager

从任务管理器中关闭

4

vbFormMDIForm

父窗体关闭引起的

5

vbFormOwner

窗体所有者关闭引起的


需要注意的是:


vbFormCode是用Unload命令关闭引起的,但是不会拦截用End命令引起的退出命令。




Cancel参数 比较好玩,只有0或者非0,如果Cancel参数是0或者不赋值,窗体继续卸载,如果给Cancel赋值其他不是0的数值,就会终止卸载窗体。


有了这两个参数,就可以在各种情况下做出相应的处理。




下边的例子可以拦截各种原因引起的关闭:


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表