找到 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);
}
}
这给出了这个丑陋的结果:
我可以使用 Button
的 Location
属性 来添加偏移量,但这并不是 100% 令人满意。
放置元素的最简洁方法是什么"inside the inner area"?
有没有办法知道边框的大小 header 以便使用正确的偏移量?
为此尝试使用 GroupBox 的 DisplayRectangle 属性:
Button button = new Button { Text = "Hello!!!" };
button.Location = groupBox.DisplayRectangle.Location;
groupBox.Controls.Add(button);
我知道 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);
}
}
这给出了这个丑陋的结果:
我可以使用 Button
的 Location
属性 来添加偏移量,但这并不是 100% 令人满意。
放置元素的最简洁方法是什么"inside the inner area"?
有没有办法知道边框的大小 header 以便使用正确的偏移量?
为此尝试使用 GroupBox 的 DisplayRectangle 属性:
Button button = new Button { Text = "Hello!!!" };
button.Location = groupBox.DisplayRectangle.Location;
groupBox.Controls.Add(button);