我有一个带有可折叠分组框的表单(从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);
问题是--当你展开盒子时,窗口确实会相应地变大,但是当你折叠盒子时,它并没有缩小。事实上,我做的任何事情似乎都不能使窗口变小--我甚至试着硬编码窗口大小,它从来没有变小,只是变大了。
我是否遗漏了什么东西来使它工作?或者是否有更好的组件可以正确地完成这一任务?老实说,我感到震惊的是,工具箱中没有一个默认的控件来完成这类任务,因为这似乎是一件相当常见的事情。我在很多表单上都看到过类似的东西。看起来不像是你应该使用第三方插件或自己编写代码的东西。
2条答案
按热度按时间9bfwbjaz1#
是否尝试添加AutoSizeMode=GrowAndShrink属性?
优选地,自动调整大小=真,自动调整大小模式=增长和收缩
在C#中
参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.autosizemode.aspx
fgw7neuy2#
确保窗体的
AutoSize
设置为True,AutoSizeMode
设置为GrowAndShrink
,默认值为GrowOnly