2009-05-27 66 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