MDI窗体的优化---下

MDI窗体的优化---下,第1张

概述上一篇,刚刚讲到,使用Setparent函数可以解决pictureBox和MDI子窗体的显示问题。   从一开始,我们就走进了一个误区,在MDI窗体只能添加有对其属性的控件。例如toolbar,status,等。 其实,在MDI窗体上放置PictureBox控件。我们就已经钻进了牛角尖。   既然在MDI窗体上不能添加无对齐属性的控件。那么就需要引入一个容器控件,在容器控件中添加其他控件。   其

上一篇,刚刚讲到,使用Setparent函数可以解决pictureBoxMDI子窗体的显示问题。

从一开始,我们就走进了一个误区,在MDI窗体只能添加有对其属性的控件。例如toolbarstatus,等。

其实,在MDI窗体上放置PictureBox控件。我们就已经钻进了牛角尖。

既然在MDI窗体上不能添加无对齐属性的控件。那么就需要引入一个容器控件,在容器控件中添加其他控件。

其实,我们可以用一个form作为一个容器来使用。

首先把form设置成无边框。这样才能使得form作为容器使用。



这样显示出来,在设置一下form1的长宽,就可以充当MDI窗体的容器控件了。

首先这样做,有一个弊端,那就是form1窗体具有焦点属性,当有其他MDI子窗体浮于form1窗体之上的时候,你在点击form1窗体,那么你正在使用的子窗体就被form1覆盖,而无法显示。

对于不使用的窗体,我们使用的 *** 作通常是最小化。所以对于系统中其他子窗体需要添加一个事件。

Private SubForm_Deactivate()       '当程序没有焦点的时候,最小化    If Me.windowstate <> 1 Then        Me.windowstate = 1        'Me.ZOrder    End IfEnd Sub

这样就可以解决form1浮于子窗体之上的情况。

对于MDI子窗体最小化后通常是下面这种情况:




但是,我们使用了form1作为MDI窗体的容器,会发现,当我们使用最小化进行 *** 作的时候,最小化后的标题,也会隐藏在form1的后面,而无法显示出来。

面对这么多的问题,那么使用form也不是很简单啊。如果能把form1设置成一个没有焦点的对象。那么这些问题就轻松解决了。不过笔者,没有找到这种办法。

所以,笔者采用了 form1的高度缩短了,这样form1就无法挡住 MDI子窗体最小化后的菜单了。




看起来还是很不美观。所以笔者思前思后,好像MDI窗体的颜色也可以改吧。

修改MDI窗体的backcolor属性,就搞定了。



至于上文提到的MDI子窗体最大化后,子窗体的标题栏位于MDI菜单栏下方的问题,也不会出现。

form2最大化后的效果图:




如果读者有更好的方法,请留言。共同进步。

总结

以上是内存溢出为你收集整理的MDI窗体的优化---下全部内容,希望文章能够帮你解决MDI窗体的优化---下所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1277670.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存