单击——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的数值,就会终止卸载窗体。
有了这两个参数,就可以在各种情况下做出相应的处理。
下边的例子可以拦截各种原因引起的关闭:
本文暂时没有评论,来添加一个吧(●'◡'●)