如何在Windows窗体中创建多个控件自动调整窗口大小?

时间:2011-04-29 04:42:06

标签: c# winforms visual-studio-2010

我是Visual Studio中Windows Forms的新手,我想知道如何自动将控件调整为窗口大小。

说,我在面板,列表框和按钮中有2个控件。我希望按钮停靠在底部,我希望列表框适合其余的空间。当窗口调整大小时,按钮应该在底部(正如预期的那样对接),列表框应该向下延伸到按钮。

有没有办法在没有任何代码的情况下执行此操作?

感谢。

5 个答案:

答案 0 :(得分:3)

Dock很容易使用,但我建议使用Anchor属性。在Designer中将表单调整为合理的大小。然后,将控件放在您想要的位置。然后,决定哪些控件应该使用表单调整大小,并按如下方式设置Anchor属性:

  • 如果您希望控件使用宽度表单调整大小,请设置右锚点。
  • 如果要调整高度,请设置底部锚点。
  • 如果您希望控件在表单调整大小时保持正确,请取消设置左锚点。
  • 如果您希望控件在表单调整大小时保持在底部,请取消设置Top锚点。

我对Docks的问题是,当控件未按特定顺序声明时,它们有时表现得很有趣,并且为了获得您想要的效果,有时您必须创建无关的面板以保存控件。

答案 1 :(得分:1)

使用控件上的停靠和填充选项。查看每个对象的属性,以及它们在任何容器中的容器。

答案 2 :(得分:1)

您可以使用SplitContainer

谷歌的例子。这是one

答案 3 :(得分:1)

当你想要维护每个控件的宽高比时,它真的很乱。如果您想要修复详细信息,并非达到标记的一种方法是使用TableLayoutPanel并使用DockAnchor < em>明智地来实现你想要的。

enter image description here

答案 4 :(得分:0)

尝试将ListBox的Dock属性设置为Fill。

您需要注意一件事:默认情况下,ListBox会自行调整大小以显示整个列表项。如果您调整控件的大小以使其显示部分项目,它将自行调整,以便显示完整的项目。这可能会使控件看起来失去其“Dock”行为。解决方案是将ListBox的IntegralHeight property设置为false,指定控件不调整自身大小以适合完整项目。