前言
机房终于进入收尾工作了,但是在优化的时候,我发现在原系统中,当我们点击一个子窗体出现的时候,其他的子窗体会自动最小化到主窗体的左下角,那么这个功能是怎么实现的呢?
功能实现
其实,让子窗体自动最小化很简单,只需要几行很简单的代码就可以搞定了。请看下面的代码:
'当窗体成为活动窗体或该窗体获得焦点时,触发的事件
Private Sub Form_Activate()
Dim a As Form
For Each a In Forms
If a.Name <> Me.Name And a.Name <> FrmMain.Name Then
a.WindowState = 1
End If
Next
End Sub
虽然这段代码看起来很简单,可是我一开始还真不知道Form_Activate()事件是什么意思。
Form_Activate()事件是当窗体获得焦点时触发的事件,上面代码的意思是:当该窗体成为活动窗体时,除了本窗体和主窗体,所有的窗体都将最小化。所以,这段代码就实现了子窗体自动最小化的功能。
For each …… Next 的用法
看见这个语句,大家肯定都想到了 For……Next 语句,它们长的太像了。没错,它们也是“亲兄弟”。不同的是 For……Next 语句适用于变量的递增,而 For each……Next 针对于一个数组或集合中的每个元素,重复执行一组语句。简单的说,For each……Next 语句就是专门为数组和集合量身定做的。
'语法:
For Each element In group '在数组或集合中开始对每个元素进行遍历寻找
[statements] '寻找情况,即你要运行的代码
[Exit For] '可随时退出遍历寻找
Next [element] '寻找下一个元素 这跟for next 循环是一样的
在程序运行过程中,可以随时用 Exit for 语句退出循环。
集合或数组可以是数组,控件,窗体,应用程序对象等。
接下来,举一个栗子:
aa = Array(1,2,3,4) '这里数组aa即使一种group对象
For Each b In aa '在aa中遍历,即从第一个元素1开始查找
Print b '打印出b
Next '下一个元素或退出
这几句打印出来的结果是 1 2 3 4,也就是说对aa中每个元素进行了遍历。