获得Groupbox真正可用的区域

时间:2013-01-15 20:41:36

标签: c# winforms

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

如何获得Groupbox内的可用区域,即不受框标题文字阻碍的区域?

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

Explanation

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

2 个答案:

答案 0 :(得分:2)

尝试使用DisplayRectangle属性:

  

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

示例:

label1.Location = groupBox1.DisplayRectangle.Location;

答案 1 :(得分:1)

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

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

HeaderWithBigText

HeaderWithSmallText

这就是不同文字大小的外观。