3

我有一个带有可折叠组框的表单(从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 方插件或滚动你自己的代码的事情。

4

2 回答 2

3

确保您的表单AutoSize设置为 True 并AutoSizeMode设置为GrowAndShrink默认值GrowOnly

在此处输入图像描述

于 2012-05-20T01:03:12.843 回答
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

于 2012-05-20T01:05:42.547 回答