当Dock = Fill时,使UserControl调整大小

时间:2011-03-17 11:55:52

标签: c# .net winforms user-interface

我正在制作UserControl的问题。它由TableLayoutPanel和其他TableLayoutPanel组成,其中包含ListView。我想让它可调整大小,以便它适合我的应用程序的左侧面板,并且行为有点像Visual Studio中的Toolbox。问题是当我调整面板大小时,我的控件不会缩放。

UserControl已嵌入到Dock = FillAnchor = Tob, Left, Bottom, Right的面板中。其中的所有控件都是这样制作的。我该如何解决这个问题?

编辑:这是WinForms,而不是XAML。

3 个答案:

答案 0 :(得分:0)

使用拆分面板,将您的UserControl放在左侧面板中,然后Dock.Fill

答案 1 :(得分:0)

您可能正在寻找TableLayoutPanel上的AutoSize属性和该面板的AutoSize ColumnType。 你可以通过简单地自动调整表格布局面板(GrowAndShrink)来实现像Dock = Fill之类的东西,这样它就能完全适合你的内部控制。 请发布您的设计师代码,以了解如何嵌入控件中的其他控件。

答案 2 :(得分:0)

我怀疑你的调整大小问题来自你在TableLayoutPanel中调整控件的策略。

表格布局面板很棘手。关于调整大小策略,你想要跟随里面表格面板的单元格,单元格中的控件要么是Dock.Fill,要么是Anchor = Top,Left,Bottom,Right。

基本上:

  • 您希望网格单元格适应控件的大小,然后在单元格Anchor = Top,Left,Bottom,Right中设置控件,并将行/列设置为自动调整大小。

  • 如果您希望单元格中的控件适应单元格大小,请使用Dock.Fill并使用百分比或绝对值来调整单元格大小。

TableLayoutPanel的行为最好在the MSDN documentation

中描述