我有一个用户控件: a) 顶部的按钮面板(它必须始终可见) b) 带有在运行时动态添加和调整大小的控件的面板。控件可以很多,因此面板必须是可滚动的。
此用户控件将托管在一个表单中,具有以下要求: a) 表单的初始大小将尝试适应动态内容的最大部分。 b) 在更改表单大小时,控件必须相应地重新调整大小。
我玩过各种锚定、停靠和自动调整大小,但我并没有完全按照我想要的方式工作。有时,是滚动弄乱了,有时是其他原因。
面板的锚定、停靠和自动调整大小、用户控件、表单的哪种组合最适合实现预期结果?
最佳答案
我成功地满足了要求。这是我的解决方案:
动态面板锚定在控件的顶部和底部。它不自动调整大小,它会在内容更改后手动更改其 MaximumSize 和 PreferredSize。
表单托管表单使用:
cntrl.AutoSize = true;
cntrl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
cntrl.Dock = System.Windows.Forms.DockStyle.Fill;
表单订阅自定义控件的事件,该事件通知 preferredHeight 并相应地更改自己的高度。
关于c# - 具有静态和动态内容的 WinForms UserControl 的最佳布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503267/