4

在我们的项目SharpWired中,我们试图创建一个类似于 Firefox 或 Safari 中的下载窗口的下载组件。也就是说,一个自上而下的下载列表,它是包含进度条、按钮等的自定义控件。

要求是应该有一个列表,每行有一个元素。每个元素都必须是自定义控件。整个列表应该是动态调整大小的,这样当你让它变长/变短时,列表会在需要时添加一个滚动条,当你使它变细/变宽时,自定义控件应该调整到列表的宽度。

我们已经尝试使用 aFlowLayoutPanel但尚未调整大小以按照我们想要的方式工作。最好我们只需要将自定义控件的锚定设置为左和右。我们也考虑过使用 aTableLayoutPanel但发现到目前为止动态添加行开销太大。

这一定是一个很常见的用例,对我来说似乎有点奇怪,FlowLayoutPanel没有直观的方法来做到这一点。有没有人做过类似的事情或有提示或技巧让我们开始?

干杯!
/亚当

4

2 回答 2

2

如果您不想使用数据绑定(通过DataRepeater控件,如上所述),您可以使用常规Panel控件并将其AutoScroll属性设置为 true(以启用滚动条)。

然后,您可以手动添加自定义控件,并将Dock每个控件的属性设置为Top.

于 2009-03-06T17:25:35.450 回答
1

.NET 3.5 SP1 引入了一个DataRepeater Windows Forms 控件,听起来它会做你想做的事。将其绑定到“下载”列表(或您的列表所代表的任何内容)并自定义每个项目面板以包含您需要的控件。

于 2008-08-26T10:06:42.517 回答