VB6中 怎么让MDI子窗体始终填满父容器,并随MDI窗体的大小改变而改变?

VB6中怎么让MDI子窗体始终填满父容器,并随MDI窗体的大小改变而改变?不是最大化,只是填满。网上找到C#的MDI子窗体有这样的功能,不知道VB6有没有,求解。c#wi... VB6中 怎么让MDI子窗体始终填满父容器,并随MDI窗体的大小改变而改变?不是最大化,只是填满。

网上找到C#的MDI子窗体有这样的功能,不知道VB6有没有,求解。

c# winform mdi子窗体始终填满父容器并随父容器改变大小
ChildForm f = new ChildForm();
f.MdiParent = this;
f.Parent = this.splitContainer1.Panel2;
f.Show();
f.Dock = DockStyle.Fill; //实现此功能的语句
展开
 我来答
常山大宝
2013-03-05 · TA获得超过6868个赞
知道大有可为答主
回答量:3502
采纳率:0%
帮助的人:1721万
展开全部

关于楼主说的“最大化之后,其它MDI子窗体就显示不出来了”,这种说法是错误的。

 

上图中,同时打开了测试A、测试B子窗体,且窗体最大化。

子窗体最大化时,在菜单栏前面出现窗体图标(图标以当前的子窗体图标为准)。

点击此图标,可以看到最下面的“下一个”命令,点击它即可切换子窗体。

同时,不难发现,下一个的快捷键是 Ctrl + F6 组合键,

因此,只要按下 Ctrl + F6 组合键,也可以达到切换子窗体的目的。

注意:上面说的切换子窗体,是指在已经打开的子窗体之间切换。

 

值得一提的是,如果楼主采用了此方案,那么,不必使用任何代码就能实现:

当主窗体改变大小时,所有当前打开的子窗体的最大化不变。。

 

另外,如果你够细心,能够看到在窗体的下方工具栏内测试A、测试B的字样。。

你也可以通过点击测试A、测试B切换对应的子窗体。

当然,实现这样的功能代码有些麻烦,需要动态添加删除工具栏内当前打开、关闭的子窗体名称

因为我只是简单测试了下可行性,这里就不给出具体的代码了,有兴趣的话可以自行研究。。

 

最后,是我对楼主要求窗体非最大化,随主窗体改变大小而始终保持最大的一点看法。

我觉得这样的主、子窗体关系既不美观,又彻底遮挡住了其他已经打开的子窗体。反而更不容易在子窗体之间切换!下图中,如何切换到测试B窗体?楼主可以自行对比一下两个图的优劣:

149005501
推荐于2017-09-05 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部

当窗体改变时,同时改变Mdi子窗体的大小即可。

示例:

Private Sub Form_Resize() '当窗体改变时
MDIFrom.Width = Me.ScaleWidth '重新设置Mdi子窗体为窗体有效宽度
MDIFrom.Height = Me.ScaleHeight '重新设置Mdi子窗体为窗体有效高度
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hejian511
2013-03-05 · TA获得超过845个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1460万
展开全部
将子窗体的windowstate设定为2 maximized就行了
更多追问追答
追问
说了,不是最大化,最大化之后,其它MDI子窗体就显示不出来了。
追答
可以在ReSize 事件里改变子窗体大小,注意 请设置Mdiform的scrollbar为false
Private Sub MDIForm_Resize()
With Form1
.Width = Me.Width
.Height = Me.Height
End With
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dgfcffhg
2019-01-19 · TA获得超过258个赞
知道小有建树答主
回答量:354
采纳率:50%
帮助的人:84.4万
展开全部
f.Dock = DockStyle.Fill
来晚了,可能你已经不需要了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式