机房收费系统之”窗体自动最小化“

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/destinyzjy/article/details/100167071

【前言】

       在我们拿到机房的学习资料,打开那个小程序时,我们会发现这样一个现象,就是比如我们打开了一个注册窗体,然后又打开了一个充值窗体,那么注册窗体就会乖乖的自动最小化到主窗体的左下角。如下图。

【如何实现】

        实现这个功能就要用到上篇博客中写的MDI窗体,首先我们把窗体的MDIChild属性都设置为True,确保为MDI子窗体。然后在每个子窗体中写下下面的代码。

'当窗体成为活动窗体或该窗体获得焦点时,触发的事件
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

       这段代码用到了窗体的Activate()事件,也就是当一个窗体成为活动窗体时会触发的事件,这段代码中的Dim a as Form 中的Form就是一个类,a是它的一个具体对象,让a在所以的窗体中循环,如果a的名字和当前窗体或者和主窗体的名字不同,即a不是当前窗体和主窗体,那么它的WindowState属性值为1,即最小化。

       这个时候我们运行工程,会发现上一个窗体确实最小化了,但是却没有显示在主窗体的左下角,这其实是因为它被Picture控件挡住了,我们需要在主窗体单击菜单的代码中将frmmain.hwnd改为picture1.hwnd,如下图。

        然后我们再运行工程就可以达到我们想要的效果了。

猜你喜欢

转载自blog.csdn.net/destinyzjy/article/details/100167071