机房收费系统之窗体遍历的实现

    我们做的机房收费系统有一个非常有意思的功能——窗体遍历,就是当一个MDI子窗体打开时,其他窗体自动最小化至托盘。这样避免了因加载窗体过多而造成的不便。

     在查阅了很多资料以后。我在每一个子窗体的Activate事件中加入了如下代码:

For Each a In Forms
   If a.Name <> Form1.Name And a.Name <> frmMain.Name And a.Name <> Me.Name Then
       a.WindowState = 1
       Form1.ZOrder 0
       End If
Next

注:Form1为子窗体,frmMain为MDI窗体。


然后现了一个非常神奇的问题。

机房收费系统之窗体遍历的实现_第1张图片

如图,点击之后,frmMain上面的控件浮在子窗体上面。。。

我百思不得其解。。

后来把代码里面的Form1.ZOrder 1注了。问题解决了。

然后,我又查阅了很多ZOrder方法的资料。

再后来,把Form1.ZOrder 1改为了Form1.ZOrder 0。问题同样解决了。

下面是ZOrder方法的一些内容。

Z表示的是与窗体平面垂直的方向,也就相当于三维坐标系中的Z轴。ZOrder方法可以设置在MDI窗体中Z轴方向的子窗体或者控件的排列次序。

Object.ZOrder 1表示该对象在最底层。

Object.ZOrder 0表示在最上层。


你可能感兴趣的:(机房收费系统之窗体遍历的实现)