2015-02-11 36 views
1

我知道GroupBox幾乎就像是一個Panel,它帶有標題和邊框,但不可滾動。查找GroupBox內部區域的左上角原點

所以在GroupBox有我所說的「內部區域」,我們希望顯示內部元素。

但似乎GroupBox沒有放置在這個區域的元素,但直接在它的左上角,就像一個啞面板。

這裏是 「問題」 的一個簡單的例子:

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); 
    } 
} 

其中給出這個醜陋的結果:

GroupBox with Button inside

我可以與ButtonLocation屬性添加一個玩抵消,但這不是100%令人滿意。

將元素「放置在內部區域」的最簡潔方法是什麼?

有沒有辦法知道邊界和標題的大小,以便使用正確的偏移?

回答

2

嘗試使用分組框的DisplayRectangle屬性爲:

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

感謝您的快速和準確的答案。似乎要完成這項工作。 :)這是一個遺憾,它沒有正確記錄,你甚至不鼓勵使用它,因爲「這個API支持.NET Framework基礎結構,並不打算直接從你的代碼中使用。」 – Pragmateek 2015-02-11 00:22:48