c#winforms平均分配3个控件

c#winforms平均分配3个控件,c#,winforms,C#,Winforms,我有3个自定义控件,我想把它们放在一个可调整大小的窗口中,彼此相邻。调整窗口大小时,这些控件也应调整大小,每个控件占用可用宽度的33% 我尝试使用表格布局,但似乎表格只会增长,而不会收缩 谢谢你在这方面的帮助 您可以使用TableLayoutPanel,其中有3列,每列大小为“33%”。然后将每个控件放置在面板中,并根据需要设置锚点属性(例如,如果控件只应在水平面上调整自身大小,则设置为向右向左) 您的TableLayoutPanel还应将其属性Dock设置为True,以便他可以占用您的所有窗口

我有3个自定义控件,我想把它们放在一个可调整大小的窗口中,彼此相邻。调整窗口大小时,这些控件也应调整大小,每个控件占用可用宽度的33%

我尝试使用表格布局,但似乎表格只会增长,而不会收缩


谢谢你在这方面的帮助

您可以使用TableLayoutPanel,其中有3列,每列大小为“33%”。然后将每个控件放置在面板中,并根据需要设置锚点属性(例如,如果控件只应在水平面上调整自身大小,则设置为向右向左)


您的TableLayoutPanel还应将其属性Dock设置为True,以便他可以占用您的所有窗口并相应调整大小。

谢谢,但这正是我所做的,但正如我所说的,tablelayout只会增长,而不会收缩。有几件事需要检查:您是否设置了控件的Dock属性?如果没有,其锚属性的值是什么?布局是否在所有方向上调整自身大小?你确定布局没有调整大小吗?如果布局试图调整大小,但您的控件没有(因为它们没有设置锚点或停靠属性),您将看不到它。对不起,在第一个问题中,我的意思是“您是否设置了TableLayoutPanel的停靠属性?”。tablelayout的锚点设置为顶部、左侧、右侧和底部。i、 e.它可以在各个方向调整大小。我不想设置dock属性,因为它会与其他控件重叠。因此,是的,tablelayout可以在各个方向调整大小,但不再收缩。在tablelayout的表中,我已将控件的停靠设置为填充。是否检查了布局的列是否设置为百分比大小,而不是固定大小?对不起,如果这个问题看起来很愚蠢,我会尽力解决所有可能的问题。我知道tablelayoutpanel是有效的,因为我目前正在创建Outlook 2007表单,到处都是这种布局。请描述一下“永不收缩”的含义。不应该是这样。我的意思是,当我把窗口变大时,桌面布局也随之增长。但是当我缩小窗口时,桌面布局保持原样。@matt:这不是正常的行为。在干净的表格上试一试。Ksempac的答案是正确的。是的,当我把它放在一个干净的表格上时,它就工作了。但是我就是找不到干净的身体和我的身体之间的区别…@马特:找到这些区别是另一回事。您可能应该检查*.Designer.cs源代码。