我有一个带可折叠组框的表单(从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);
问题在于,当您扩展框时,窗口确实会相应地增长,但是当您折叠框时,它并不会缩小。实际上,我所做的任何事情都似乎不能使窗口变小 - 我甚至尝试过硬编码窗口大小,它从未变小,只会变得更大。
是否有什么我错过的使其工作的方法?还是有更好的组件可以正确实现这个功能?老实说,我很震惊工具箱中没有默认控件来做这件事,因为它看起来是一个相当普遍的事情,在许多表单上我都看到过类似的内容。似乎不应该为此去使用第三方插件或自己编写代码。
AutoSize
属性是否设置为true
?此外,您是否检查了代码在折叠时是否实际调用,例如使用断点或调试打印等? - SimpleVar