Winforms:调整表单控件中的用户控件

时间:2016-01-22 11:37:07

标签: c# .net winforms

上下文:

我正在尝试使用Microsoft Prism guidelines构建表单。

我有两个用户控件注入表单。 该表单包含两个面板,表示将容纳用户控件的容器。

用户控件在运行时通过DI获取注入(我使用MVP模式,类似于MVVM,但为Winforms进行了调整)。

表单具有默认的最小大小,但未指定最大大小。调整表单大小的唯一方法是使其全屏显示。它将AutoSize属性设置为TRUE,AutoSizeMode设置为GrowAndShrink

两个用户控件都将AutoSize设置为TRUE。 用户控件中的所有容器都将AutoSize属性设置为TRUE,DOCK设置为FILL,AutoSizeMode = GrowAndShrink。未设置控件的最大大小。

表单内的面板堆叠在一起,并将Anchor属性设置为:TOP,LEFT,RIGHT,分别为:BOTTOM,LEFT,RIGHT。

问题:

在将表单调整为全屏时,我希望用户控件可以扩展以填充整个屏幕。

这种情况没有发生。

用户控件的大小不会改变,我无法找出原因。

感谢。

更新

如果我将窗体内面板的DOCK属性分别更改为TOP FILL,面板将调整大小,但面板内的用户控件保持不变。

2 个答案:

答案 0 :(得分:1)

将面板中控件的Dock也设置为Fill

答案 1 :(得分:0)

忘记在你的控件上设置Dock和AutoSizeMode - 只需使用Anchor,你会发现它工作得很好。

我从不使用AutoSize = true。我总是在false处得到它(事实上,我必须检查一些表单,以验证我的表单上的控件上是否存在AutoSizeAutoSizeMode属性。)< / p>

在你描述的场景中,我将Anchor设置为Top,Left,Bottom,Right,两者都包含在面板和控件中。