WindowsForms 和 C# 中的动态自上而下控件列表?
-
09-06-2019 - |
题
在我们的项目中, 夏普连线, ,我们正在尝试创建一个类似于 Firefox 或 Safari 中的下载窗口的下载组件。也就是说,一个自上而下的下载列表是包含进度条、按钮等的自定义控件。
要求是应该有一个列表,每一行有一个元素。每个元素都必须是自定义控件。整个列表应该动态调整大小,以便当您使其更长/更短时,列表会在需要时添加滚动条,当您使其更薄/更宽时,自定义控件应调整大小以适应列表的宽度。
我们尝试过使用 FlowLayoutPanel
但还没有调整大小以按照我们想要的方式工作。最好我们只需将自定义控件的锚定设置为“左”和“右”。我们还考虑过使用 TableLayoutPanel
但发现到目前为止动态添加行的开销太大。
这一定是一个非常常见的用例,对我来说这似乎有点奇怪 FlowLayoutPanel
没有直观的方法来做到这一点。 有没有人做过类似的事情或者有提示或技巧来让我们开始?
干杯!
/亚当
解决方案
如果您不想使用数据绑定(通过 DataRepeater
控制,如上所述),你可以使用常规 Panel
控制并设置其 AutoScroll
属性设置为 true(以启用滚动条)。
然后,您可以手动添加自定义控件,并设置 Dock
每个人的财产 Top
.
其他提示
.NET 3.5 SP1 引入了 数据中继器 Windows 窗体控件听起来像是可以执行您想要的操作。将其绑定到“下载”列表(或列表代表的任何内容)并自定义每个项目面板以包含您需要的控件。
不隶属于 StackOverflow