【发布时间】:2011-08-15 05:45:01
【问题描述】:
我是 Visual Studio 中 Windows 窗体的新手,我想知道如何根据窗口大小自动调整控件的大小。
比如说,我在一个面板中有 2 个控件,一个列表框和一个按钮。我希望按钮停靠在底部,并且希望列表框适合其余空间。当窗口调整大小时,按钮应位于底部(与停靠一样),列表框应向下延伸到按钮。
有没有办法不用任何代码来做到这一点?
谢谢。
【问题讨论】:
标签: c# winforms visual-studio-2010
我是 Visual Studio 中 Windows 窗体的新手,我想知道如何根据窗口大小自动调整控件的大小。
比如说,我在一个面板中有 2 个控件,一个列表框和一个按钮。我希望按钮停靠在底部,并且希望列表框适合其余空间。当窗口调整大小时,按钮应位于底部(与停靠一样),列表框应向下延伸到按钮。
有没有办法不用任何代码来做到这一点?
谢谢。
【问题讨论】:
标签: c# winforms visual-studio-2010
当你想要保持每个控件的纵横比时,它真的会变得很混乱。一种不是真的如果你想修复细节的方法是使用TableLayoutPanel并使用Dock和Anchor明智 实现你想要的。
【讨论】:
Dock 非常易于使用,但我建议改用 Anchor 属性。在 Designer 中将表单调整为合理的大小。然后,放置您的控件以使其看起来像您想要的那样。然后,决定哪些控件应随表单调整大小并设置 Anchor 属性,如下所示:
我在使用 Docks 时遇到的问题是,当控件未按特定顺序声明时,它们有时会显得很滑稽,为了获得您想要的效果,有时您必须创建无关面板来保存控件。
【讨论】:
尝试将 ListBox 的 Dock 属性设置为 Fill。
不过,您需要注意一件事:默认情况下,ListBox 会自行调整大小以显示整个列表项。如果您调整控件的大小以使其显示部分项目,它将自行调整以显示完整的项目。这会使控件看起来失去其“停靠”行为。解决方案是将 ListBox 的 IntegralHeight property 设置为 false,这指定控件不会调整自身大小以适应完整的项目。
【讨论】:
您可以使用SplitContainer
谷歌的例子。这里是one
【讨论】:
使用控件上的停靠和填充选项。查看每个对象的属性以及容器(如果有的话)。
【讨论】: