我有一个带有可折叠组框的表单(从http://www.codeproject.com/Articles/12835/XP-Style-Collapsible-GroupBox获得)。我基本上使用它来显示/隐藏表单上的高级选项。但是,组框本身并不存在问题,因为我只使用常规Panel
做了同样的事情,我更改了Visible属性并且问题是相同的:
当我隐藏此框时,我希望窗口相应缩小。所以当你点击基本上类似的方框标题时,我已经得到了代码:
if (OptionsPanel.IsCollapsed)
this.Height -= (OptionsPanel.Height - OptionsPanel.CollapsedHeight);
else
this.Height += (OptionsPanel.Height - OptionsPanel.CollapsedHeight);
问题是 - 当您展开框时,窗口确实相应地增长,但是当您折叠框时,它不会缩小。事实上,我所做的一切似乎都无法使窗口变小 - 我甚至尝试过对窗口大小进行硬编码,而且它永远不会变小,只会变大。
是否有一些我想要做的工作?或者有更好的组件可以做到这一点吗?老实说,我感到震惊的是工具箱中没有默认控制来做这种事情,因为这似乎是一件相当普遍的事情,而且我已经在很多地方看到了这样的事情。形式。看起来你不应该去第三方插件或者推出自己的代码。
答案 0 :(得分:3)
确保您的表单AutoSize
设置为True,AutoSizeMode
设置为GrowAndShrink
,默认设置为GrowOnly
答案 1 :(得分:3)
您是否尝试添加AutoSizeMode = GrowAndShrink属性?
最好是AutoSize = true,AutoSizeMode = GrowAndShrink
在C#中
OptionsPanel.AutoSize = true;
OptionsPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.autosizemode.aspx