winforms C#窗口高度只会变大,不会变小

lh80um4z  于 2022-11-25  发布在  C#
关注(0)|答案(2)|浏览(202)

我有一个带有可折叠分组框的表单(从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);

问题是--当你展开盒子时,窗口确实会相应地变大,但是当你折叠盒子时,它并没有缩小。事实上,我做的任何事情似乎都不能使窗口变小--我甚至试着硬编码窗口大小,它从来没有变小,只是变大了。
我是否遗漏了什么东西来使它工作?或者是否有更好的组件可以正确地完成这一任务?老实说,我感到震惊的是,工具箱中没有一个默认的控件来完成这类任务,因为这似乎是一件相当常见的事情。我在很多表单上都看到过类似的东西。看起来不像是你应该使用第三方插件或自己编写代码的东西。

9bfwbjaz

9bfwbjaz1#

是否尝试添加AutoSizeMode=GrowAndShrink属性?
优选地,自动调整大小=真,自动调整大小模式=增长和收缩
在C#中

OptionsPanel.AutoSize = true;
OptionsPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;

参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.autosizemode.aspx

fgw7neuy

fgw7neuy2#

确保窗体的AutoSize设置为True,AutoSizeMode设置为GrowAndShrink,默认值为GrowOnly

相关问题