C# 获取Groupbox的真正可用区域

C# 获取Groupbox的真正可用区域,c#,winforms,C#,Winforms,在Windows窗体中,当我将标签控件放置在groupbox内部的Y=0位置时,标签将与groupbox顶部的标题文本相交 如何获取分组框中的可用区域,即未被框标题文本阻挡的区域 设置control.Y=groupBox.Padding.Top不起作用。而Groupbox.ClientRectangle也不考虑文本 编辑:有一个简单的方法可以得到这个内部矩形:只需在GroupBox中定位一个Label,然后将其Dock属性设置为Fill。然后可以从面板中获取相关信息(上/下/左/右),或者直接

在Windows窗体中,当我将标签控件放置在groupbox内部的
Y=0
位置时,标签将与groupbox顶部的标题文本相交

如何获取
分组框
中的可用区域,即未被框标题文本阻挡的区域

设置
control.Y=groupBox.Padding
.Top不起作用。而
Groupbox.ClientRectangle
也不考虑文本

编辑:有一个简单的方法可以得到这个内部矩形:只需在
GroupBox
中定位一个
Label
,然后将其
Dock
属性设置为Fill。然后可以从面板中获取相关信息(上/下/左/右),或者直接使用面板添加子控件。 但是,我仍然想知道如何在没有此类破解的情况下获取这些坐标。

尝试使用以下属性:

DisplayRectangle属性返回控件显示区域的客户端矩形。对于基本控件类,这等于客户端矩形。但是,如果控件的客户端区域与显示区域不同,继承控件可能需要更改此设置。显示矩形是包围控件并用于布局控件的最小矩形

例如:

label1.Location = groupBox1.DisplayRectangle.Location;

非常旧的线程,但以下是我用于控件的内容:

label1.Location = new Point(0,(int)(groupBox1.Font.Size)*2);


这就是它在不同文本大小下的外观。

这没有属性,它总是在设计器中引起注意。您需要自己测量文本高度,textrender.MeasureText().@JohnShedletsky是否愿意详细说明您遇到的问题?当您通过代码将字体更改为20 em时,返回的DisplayRectangle不符合GroupBox文本属性的下限。@JohnShedletsky仍然使用
groupBox1.font=新字体(groupBox1.font.FontFamily,20)为我工作,然后我做了
groupBox1.Text=groupBox1.DisplayRectangle.ToString()
并返回(3,34)的位置。在该位置的分组框中放置一个面板与放大的标题没有重叠。你必须给我重复你的问题的代码。