我有一个简单的表单,其中包含一个 TabControl,其中在运行时添加了 TabPages。我已经让所有这一切几乎按照我的意愿工作,但是当我将表单设置为自动调整大小时,它会忽略计算中的运行时 TabPages ......我怎样才能强制表单延迟自动调整大小直到 TabPages 有已添加,或者在添加新 TabPage 时强制表单重新计算?
编辑:作为记录,我正在通过在 640x480 启动我的应用程序(使用 MinimumSize 属性)并包括一个 750 宽的控件来对此进行测试。
会使用SuspendLayout()
andResumeLayout()
来解决问题吗?这是解释其工作原理的链接。
您SuspendLayout()
首先调用,添加标签页,然后ResumeLayout()
.
希望这会有所帮助,最好的问候,汤姆。
使用 TabPage.Dock = DockStyle.Fill 怎么样?
我怀疑您不再遇到此问题,但这可能对其他寻求解决方案的人有所帮助。您可以将 TabControl 的 MinimumSize 设置为您添加的最大 TabPage 的 MinimumSize。TabPages 没有自己的 MinimumSize,因此您必须在 TabPage 中有一个完全停靠的控件,您可以在该控件上检查 MinimumSize。
我已经有了这个设置(使用 FlowLayoutPanel 来布置 TabPage 的内容),所以它相对简单,不确定对其他人来说是否那么容易。我知道这是一个非常令人不快的“解决方案”,但我找不到另一种强制 TabControl 正确更新自身的方法。