我有一个带有可折叠组框的表单(从http://www.codeproject.com/Articles/12835/XP-Style-Collapsible-GroupBox获得)。我基本上使用它来显示/隐藏表单上的高级选项。然而,组框本身并没有问题,因为我只使用了一个我更改了 Visible 属性的常规器做了同样的事情,Panel
问题是一样的:
当我隐藏这个框时,我希望窗口相应地缩小。因此,当您单击框标题时,我得到了基本上如下所示的代码:
if (OptionsPanel.IsCollapsed)
this.Height -= (OptionsPanel.Height - OptionsPanel.CollapsedHeight);
else
this.Height += (OptionsPanel.Height - OptionsPanel.CollapsedHeight);
问题是 - 当你展开盒子时,窗口确实会相应地增长,但是当你折叠盒子时,它不会缩小。事实上,我所做的一切似乎都无法让窗口变小——我什至尝试过硬编码窗口大小,但它永远不会变小,只会变大。
我缺少什么来完成这项工作吗?还是有更好的组件可以做到这一点?老实说,我很震惊工具箱中没有用于执行此类操作的默认控件,因为这似乎是一件相当普遍的事情,而且我在很多表单上都看到过类似的事情。似乎不是那种你应该去 3rd 方插件或滚动你自己的代码的事情。