8

GroupBoxes的一个左侧有两个TabControls,分别称为 GroupBox A(左上角)和 GroupBox B(左下角)。GroupBoxes 不会像我希望的那样调整大小。

示例: 当我用鼠标调整具有 TabControls 的主窗体的大小,或将其最大化,或将其移动到分辨率较低的屏幕时,GroupBox B 保持其宽度/高度。这会导致 GroupBox B 在 GroupBox A 上绘制,有点像“始终在顶部”效果。

期望: 希望两个 GroupBox 相互/按比例调整大小并适合给定的区域。

想法?

4

5 回答 5

10

一个 tableLayoutPanel 可以帮助解决这个问题。

  1. 添加一个 tableLayoutPanel 并调整其大小以满足您的需求。
  2. 将表格锚定到顶部、底部、左侧和右侧
  3. 将 GroupBoxA 放入表格的左上角单元格
  4. 将 GroupBoxB 放入表格的右下角单元格
  5. 对于这两个 GroupBox,相应地调整它们的大小并将它们锚定到所有 4 个边上。
  6. 现在它们将随着应用程序成比例地增长和缩小。

此外,您可以将更多控件添加到表中。如果您需要一个控件来跨越多行或多列,请使用 RowSpan/ColumnSpan 属性。

于 2013-08-23T22:30:32.573 回答
3

如果您的 GroupBox 在另一个控件(例如选项卡或其他控件)内,请执行以下操作:

在我的情况下,我在选项卡中有一个 GroupBox,我在方法中调用了以下方法InitializeComponent()来强制 Groupbox 调整到选项卡大小。

this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();

如果您有多个 GroupBox,则需要相应地设置锚定。

于 2016-07-28T11:10:40.473 回答
1

我遇到了类似的问题,我刚刚为两个 GroupBox 使用了拆分容器,将拆分容器锚定在我的主窗体的顶部、底部、左侧和右侧,并且两个 GroupBox 也在其容器的顶部、底部、左侧和右侧.

于 2014-03-26T21:17:39.467 回答
1

与原始问题略有偏离,但我的问题是我的 Group Box 的 MaximumSize 字段没有设置,或者太小,所以我无法调整高度!

于 2015-02-24T18:58:12.620 回答
1

虽然这个问题已经很老了,但有人可能仍然觉得它很有用......我遇到了同样的问题并找到了一个可行的解决方案 - >而不是更改 GroupBox 的宽度/高度,而是在表单的调整大小方法中更改其最小宽度/高度

编辑:修正错字

    private void Form1_Resize(object sender, EventArgs e) {
        groupBox1.MinimumSize = new Size(this.Width /2, this.Height);
    }
于 2016-05-25T23:26:15.240 回答