找到 GroupBox 内部区域的左上原点

Find the top left origin of a GroupBox's inner area

我知道 GroupBox 几乎就像一个带有 header 和边框的 Panel,但不可滚动。

所以在 GroupBox 中有我所说的“内部区域”,我们希望在其中显示内部元素。

但似乎 GroupBox 并没有将元素放置在该区域,而是直接放置在其左上角,就像一个哑面板一样。

下面是"issue"的简单说明:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        Button button = new Button { Text = "Hello!!!" };

        GroupBox groupBox = new GroupBox { Text = "Some useful stuff", Dock = DockStyle.Fill };
        groupBox.Controls.Add(button);

        this.Controls.Add(groupBox);
    }
}

这给出了这个丑陋的结果:

我可以使用 ButtonLocation 属性 来添加偏移量,但这并不是 100% 令人满意。

放置元素的最简洁方法是什么"inside the inner area"?

有没有办法知道边框的大小 header 以便使用正确的偏移量?

为此尝试使用 GroupBox 的 DisplayRectangle 属性:

Button button = new Button { Text = "Hello!!!" };
button.Location = groupBox.DisplayRectangle.Location;
groupBox.Controls.Add(button);