2009-05-27 94 views
1

我是C#的新手,我一直在研究一個小項目,以獲得Visual Studio 2008的感覺。我在C#中設計GUI,並且我有一個帶有三個GroupBox的TabControl。這三個GroupBox錨定在屏幕的左側和右側,並在水平調整大小時可以很好地工作。C#容器 - 在調整大小時垂直填充空間

我希望這三個盒子佔用屏幕高度的33%,並優雅地調整大小。我試圖搞錨定,但我似乎無法找到答案。我也一直在尋找類似的東西,但不幸的是,搜索定位容器會產生所有CSS和HTML的東西。

這似乎是一個很常見的事情,但我似乎無法找到一個容易的方法來做到這一點。如果有人能指引我正確的方向,我將不勝感激。

謝謝!

回答

1

嘗試一下TableLayoutPanel。我相信它確實是你想要的。它允許您在其區域內定義列和行,以百分比或像素爲單位指定其寬度(對於列)和高度(對於行)。然後,您可以將一個組框放入每個單元格,並將其Dock屬性設置爲Fill,並且在TableLayoutPanel調整大小時(可以通過使用對接或錨定輕鬆實現),它將與單元格一起很好地調整大小。

+0

謝謝,這正是我所要找的。現在看起來很明顯,但是當我看着容器時,我錯過了這一點! – Foo 2009-05-27 21:59:18

0

處理表單的Resize事件:添加代碼以計算其中控件的新大小/位置。謹防干擾控件的錨定屬性。您可能必須將錨定到無,並自己計算左右位置。

既然你在學習,我想你不想得到一個完整的解決方案,而是一個方向。我沒有代碼然後;-)

1

這真的是在黑暗中拍攝,但也許你可以嘗試使用拆分面板?

編輯:我剛剛在Visual Studio中檢查,我認爲TableLayoutPanel可能會做你想做的。

EDIT2:DANG,毆打衝:)

+0

對不起);我也是第一次使用IsSplitterFixed屬性,但當我意識到拆分面板只處理兩個面板時,我的思緒轉移到TableLayoutPanel。不喜歡嵌套他們的想法(雖然這可能會奏效)。 – 2009-05-27 21:39:51