隐藏分组框,并删除它在 winform 中存在的空间

本文关键字:winform 存在 空间 删除 隐藏 | 更新日期: 2023-09-27 18:09:33

在我的 winform 中,我有三个组框,基于对组合框中的项目 第二组框(位于中心(使用 Groupbox.visible 属性隐藏。问题是当第二个goupbox被隐藏时,那里似乎是隐藏组框区域中的空白区域,我想将第三组框移动到第二组框的位置存在组框。我可以使用任何其他控件代替分组框吗?

隐藏分组框,并删除它在 winform 中存在的空间

您可以手动设置第三个分组框的LocationSize属性,或者(我认为更好(Dock将两个分组框的属性设置为Top,因此当您的第二个 GB 变得不可见时,第三个应该向上滚动以占用可用空间。

假设您只使用默认的 VS 控件,则您有少量选项。

如果将这些分组框放在流程布局面板中,则当您使其不可见时,布局面板会将其他控件移动到其先前占用的空间中。

如果停靠分组框,则在停靠指示时,使一个组框不可见会导致其他组框占用空间。

如果无法使用布局机制或控件,则唯一的选择是修改相邻控件的位置或大小以手动填充空间。

我非常建议尝试使用布局容器,或者在线查找为您处理定位的容器。 使用可能大量的"魔术"数字埋在表单中的位置代码绝对是不可维护的。

你应该通过追逐你groupboxes所在的控制来解决它。它们的位置不能设置为常量。另一种解决方案是在更改第二个groupbox的可见性时更改第三个的位置。

FlowLayoutPanel应该可以 http://msdn.microsoft.com/en-us/library/system.windows.forms.flowlayoutpanel.aspx