2009-02-02 56 views
3

我有具有用户控制: a)在所述顶部上的按钮面板(它总是必须是可见的) b)用动态添加和重新调整大小在运行时控制的面板。控件可以是很多的,所以面板必须是可滚动的。具有静态和动态内容的WinForms用户控件的最佳布局?

此用户控件将托管在表单中,并具有以下要求: a)表单的初始大小将尝试适合动态内容的最大部分。 b)关于改变表单大小,控制必须被重新调整大小相应。

我已经打了不同的固定,对接,并自动调整大小和我不太得到它在我想要的方式工作。有时候,滚动是弄乱了,有时候是另一回事。

什么样的组合锚,对接,并且面板,用户控件的自动调整大小的,形式可以很好的工作,以达到预期的结果?

+2

包含您的表单 - 呈现和所需呈现的屏幕截图可能会有帮助。 – Cerebrus 2009-02-02 13:59:43

回答

0

不知道你的问题的具体情况,我发现多个填充停靠的拆分容器与一个固定的面板和/或一个固定的滑块通常会创建一个非常方便的调整大小的体验。您也可以非常有效地折叠面板。

1

我会用表格布局面板去。您可以在一列中指定两行,其中按顶部的按钮的确切大小,然后用底部填充其余列。然后为该区域中的动态内容放置一个普通面板或一个flowlayout面板。

2

我成功地达到了要求。这是我的解决方案:

动态面板锚定在控件的顶部和底部。它不AutoSize,它会在内容更改后手动更改它的MaximumSize和PreferredSize。

形式主机使用形式:通知对preferredHeight

 cntrl.AutoSize = true; 
     cntrl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 
     cntrl.Dock = System.Windows.Forms.DockStyle.Fill; 

的形式订阅自定义控件的事件,并相应地改变了自己的身高。

相关问题