运行时添加的C#TabPages don';t自动调整父窗体的大小

运行时添加的C#TabPages don';t自动调整父窗体的大小,c#,runtime,autosize,tabpage,C#,Runtime,Autosize,Tabpage,我有一个简单的表单,其中包含一个TabControl,TabPages是在运行时添加的。我已经让所有这些工作几乎像我希望的那样,但是当我将表单设置为autosize时,它会忽略计算中的运行时选项卡页。。。如何强制窗体延迟自动调整大小,直到添加选项卡页,或者在添加新选项卡页时强制窗体重新计算 编辑:作为记录,我通过在640x480启动我的应用程序(使用MinimumSize属性)并包含一个750宽的控件来测试这一点。使用SuspendLayout()和ResumeAyout()会有效果吗?下面是解

我有一个简单的表单,其中包含一个TabControl,TabPages是在运行时添加的。我已经让所有这些工作几乎像我希望的那样,但是当我将表单设置为autosize时,它会忽略计算中的运行时选项卡页。。。如何强制窗体延迟自动调整大小,直到添加选项卡页,或者在添加新选项卡页时强制窗体重新计算


编辑:作为记录,我通过在640x480启动我的应用程序(使用MinimumSize属性)并包含一个750宽的控件来测试这一点。

使用
SuspendLayout()
ResumeAyout()
会有效果吗?下面是解释其工作原理的示例

首先调用
SuspendLayout()
,添加选项卡页面,然后调用
ResumeLayout()

希望这有帮助, 顺致敬意,
Tom.

使用
SuspendLayout()
resumellayout()
会有效果吗?下面是解释其工作原理的示例

首先调用
SuspendLayout()
,添加选项卡页面,然后调用
ResumeLayout()

希望这有帮助, 顺致敬意,
Tom.

使用TabPage.Dock=DockStyle.Fill怎么样?

使用TabPage.Dock=DockStyle.Fill怎么样?

我怀疑您不再有这个问题,但这可能对其他正在寻找解决方案的人有所帮助。您可以将TabControl的MinimumSize设置为添加的最大TabPage的MinimumSize。TabPages没有自己的MinimumSize,因此您必须在TabPages中有一个完全停靠的控件,您可以在该控件上检查MinimumSize


我已经有了这个设置(使用FlowLayoutPanel来布局选项卡页面的内容),所以它相对简单,不确定对其他人来说是否如此简单。我知道这是一个非常令人不快的问题“解决方案”,但我找不到另一种方法来强制TabControl正确更新自身。

我怀疑您不再有此问题,但这可能对其他正在搜索解决方案的人有所帮助。您可以将TabControl的MinimumSize设置为添加的最大TabPage的MinimumSize。TabPages没有自己的MinimumSize,因此您必须在TabPages中有一个完全停靠的控件,您可以在该控件上检查MinimumSize


我已经有了这个设置(使用FlowLayoutPanel来布局选项卡页面的内容),所以它相对简单,不确定对其他人来说是否如此简单。我知道这是一个非常令人不快的“解决方案”,但我找不到另一种方法来强制TabControl正确更新自身。

如果在添加选项卡后关闭自动调整大小然后再打开会发生什么?如果在添加选项卡后关闭自动调整大小然后再打开会发生什么?TabPages没有Dock属性。这取决于TabControl是否停靠,它已经停靠了。TabPages没有停靠属性。由TabControl来停靠,它已经这样做了。