【发布时间】:2015-02-13 22:19:00
【问题描述】:
当我在代码中调整子表单的大小时,如何让父表单自动调整大小以包裹子表单?我将父表单的 autosize 属性设置为 true。我在大小更改后调用了 this.MdiParent.PerformLayout() 。我不想手动调整父表单的大小。
【问题讨论】:
-
假设在 MDI 环境中如何工作?如果子窗体与边界重叠,则 MDI 父级仅提供滚动条。调整父表单的大小并不被认为是出色的 UI — 这通常是一种不和谐的体验。
-
我正在尝试调整子表单的大小以显示更多内容并且它没有调整大小,我假设父表单正在限制它。为什么会刺耳?用户更愿意查看所有内容,而不是调整表单大小以查看隐藏的内容。
-
但是 MDI 子表单是 MDI 区域内的浮动表单 - 这就是为什么您尝试做的事情没有意义。
-
我想确认一下,这是一个 MDI 应用程序吗?还是这些子“表单”真的只是子控件?我认为我们需要更多地了解您的父表单。
-
是的子表单在父表单内。 mdi 应用程序在启动时未最大化,但子窗体需要足够大以显示所有控件和网格。父窗体不知道它需要多大,因此子窗体调整其大小。不是因为它不能比父窗体更大。父窗体需要像孩子一样大。子窗体控制 mdi 应用程序的大小。就像在一个网页中,你有一个 div 并且内容控制着 div 的大小。如果 div 没有固定的宽度和高度,则会增长以显示所有内容。
标签: winforms