6

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

如何获得 中的可用区域Groupbox,即没有被框的标题文本阻挡的区域?

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

解释

编辑:有一个简单的技巧来获得那个内部矩形:只需Label在 中放置一个GroupBox,并将它的Dock属性设置为 Fill。然后你可以从面板中获取相关信息(上/下/左/右),或者干脆直接使用面板添加你的子控件。但是,我仍然想知道如何在没有这种黑客攻击的情况下获得这些坐标。

4

2 回答 2

3

尝试使用DisplayRectangle属性:

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

例子:

label1.Location = groupBox1.DisplayRectangle.Location;
于 2013-01-15T20:50:43.020 回答
1

相当老的线程,但这是我用于控件的内容:

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

HeaderWithBigText

HeaderWithSmallText

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

于 2016-03-30T11:49:47.657 回答