2010-01-25 53 views
2

我有一个简单的窗体,其中包含一个TabControl,其中TabPages在运行时添加。我已经得到了所有这些工作几乎,因为我希望它,但是当我将窗体设置为autosize时,它忽略计算中的运行时TabPages ...我如何强制窗体延迟自动调整,直到TabPages已被添加,或者在添加新的TabPage时强制表单重新计算?在运行时添加的C#TabPages不会自动调整父窗体

编辑:为了记录,我通过在640x480(使用MinimumSize属性)启动我的应用程序并包括750宽控件来测试此项。

+0

如果您在添加选项卡后关闭自动大小然后重新打开,会发生什么情况? – Jay 2010-01-25 06:53:38

+0

不是很多,不幸的是。 – EvoGamer 2010-01-25 17:50:42

回答

0

会使用SuspendLayout()ResumeLayout()做诡计吗?这里是解释它如何工作的link

您先致电SuspendLayout()先添加标签页,然后ResumeLayout()

希望这会有所帮助, 最好的问候, 汤姆。

+0

不幸的是,这似乎并未影响Autosize逻辑... – EvoGamer 2010-01-25 01:19:33

0

如何使用TabPage.Dock = DockStyle.Fill?

+0

TabPages没有Dock属性。这取决于TabControl到Dock,它已经做到了。 – EvoGamer 2010-01-25 15:42:53

0

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

我已经有了这个设置(使用FlowLayoutPanel来布局TabPage的内容),所以它比较简单,不知道是否对其他人来说这么容易。我知道这是一个非常不愉快的解决方案,但我找不到另一种强制TabControl正确更新自身的方法。

相关问题