2008-08-26 83 views
4

在我們的項目SharpWired中,我們嘗試創建一個類似於Firefox或Safari中的下載窗口的下載組件。也就是說,一個單獨的自上而下的下載列表是包含進度條,按鈕和不包含的自定義控件。WindowsForms和C#中控件的動態自頂向下列表?

要求是應該有一個單一的列表,每行有一個元素。每個元素必須是自定義控件。整個列表應該動態調整大小,以便當它變長/變短時,列表會在需要時添加滾動條,並且當​​您將它變得更薄/更寬時,自定義控件應調整爲列表的寬度。

我們嘗試過使用FlowLayoutPanel,但沒有按照我們想要的方式調整大小。最好我們只需要將自定義控件的錨定設置爲左側&右側。我們也考慮過使用TableLayoutPanel,但發現動態添加行是迄今爲止開銷過大的原因。

這一定是一個相當普遍的用例,對我來說這似乎有點奇怪,FlowLayoutPanel沒有直觀的方式來做到這一點。 有沒有人做過類似的事情或有提示或技巧讓我們進行?

乾杯!
/Adam

回答

2

如果你不想使用數據綁定(通過DataRepeater控制,如上面提到的),你可以使用正Panel控制及其AutoScroll屬性設置爲true(啓用滾動條)。

然後,您可以手動添加自定義控件,並將Dock的每個屬性設置爲Top

1

.NET 3.5 SP1引入了一個DataRepeater Windows窗體控件,它聽起來像它會做你想做的。將它綁定到「下載」列表(或任何您的列表代表),並自定義每個項目面板以包含您需要的控件。

+0

該控件位於VisualBasic Power Pack中。我將如何在C#中使用它? – 2008-08-26 10:23:36

+0

@Adam否,它只是在VisualBasic命名空間中。你可以從任何和所有的.NET語言中使用它,它是.NET 3.5 SP1的一部分。 – 2008-08-26 10:24:38

相關問題