机房收费系统—实现子窗体自动最小化

前言

  机房终于进入收尾工作了,但是在优化的时候,我发现在原系统中,当我们点击一个子窗体出现的时候,其他的子窗体会自动最小化到主窗体的左下角,那么这个功能是怎么实现的呢?

功能实现

  其实,让子窗体自动最小化很简单,只需要几行很简单的代码就可以搞定了。请看下面的代码:

'当窗体成为活动窗体或该窗体获得焦点时,触发的事件
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中每个元素进行了遍历。

猜你喜欢

转载自blog.csdn.net/zwj_jyzl/article/details/78933835