机房管理之MDI窗体

来源:互联网 发布:知乎女神王诺诺是谁 编辑:程序博客网 时间:2024/06/05 17:27

1.在MDI窗体上不能使用控件,需要用一个容器来放控件,比如使用picturebox控件来当做容器,这时真能体会到巨人的力量,这时我查到了另外一种方法。用一个窗体做容器,把这些控件放到窗体上,前提是要把窗体设置为子窗体,把borderstype 设置为none,然后在MDI窗体加载的时候,子窗体也同时加载。

借鸡下蛋—MDI窗体显示无对齐属性控件
来自 http://blog.csdn.net/tang_huan_11/article/details/7976518

2.MDI窗体与子窗体的显示问题–(如何让主窗体是被控件挡住的子窗体显示)
来自 http://blog.csdn.net/yudandan10/article/details/8046738

☆一个我认为很好的解决办法:
在主窗体中使用点击事件,前提是:用窗体来做MDI的容器。如果是pictureBox,那就可以不用看我下面的解释了。用一个窗体来当主窗体,当其变成活动窗体时,会让打开的子窗体最小化,这样就解决了字窗体被主窗体挡住的问题了。
思想如下:
(1)第一步,在模块中声明标志变量为布尔类型,大小为子窗体的数量

(2)第二步,在对应子窗体相互响应,同时,当窗体被关闭时,需要让该标志为假。添加如下代码:
Private Sub Form_Load()
frmFlag(1) = True ‘判断窗体是否显示,与主窗体中相互响应
End Sub

Private Sub Form_Unload(Cancel As Integer)
frmFlag(1) = False ‘当窗体被关闭时,会将此标志重新赋值
End Sub

PS:VB窗体启动、关闭时涉及的主要事件,相信你看完之后,会想到其它不同的解决办法。来自 http://blog.csdn.net/cyl_happygirl/article/details/13168021

(3)第三步,主窗体中添加代码;可以换成其他的事件,比如 click等都可以,下面只做一个窗体的展示。
‘当点击主窗体时,如果子窗体正在显示,那么就让它最小化
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next ‘这一行语句是为了保证不会有错误出现,也可以去掉。
If frmFlag(1) Then
basicData.WindowState = 1
End If
End Sub

最后,就可以尝试一下,看看效果如何。觉得效果不错的留下赞在走呗!有其它更好的方法,一定要留下。

原创粉丝点击