Dynamische Top-Down-Liste von Steuerelementen in WindowsForms und C#?
-
09-06-2019 - |
Frage
In unserem Projekt SharpWired, Wir versuchen, eine Download-Komponente zu erstellen, die den Download-Fenstern in Firefox oder Safari ähnelt.Das heißt, eine einzige Liste von Downloads von oben nach unten, bei der es sich um benutzerdefinierte Steuerelemente mit Fortschrittsbalken, Schaltflächen und vielem mehr handelt.
Die Anforderungen bestehen darin, dass es eine einzige Liste mit einem Element in jeder Zeile geben sollte.Jedes Element muss ein benutzerdefiniertes Steuerelement sein.Die gesamte Liste sollte dynamisch in der Größe veränderbar sein, sodass die Liste bei Bedarf eine Bildlaufleiste hinzufügt, wenn Sie sie länger/kürzer machen. Wenn Sie sie dünner/breit machen, sollten sich die benutzerdefinierten Steuerelemente an die Breite der Liste anpassen.
Wir haben versucht, a zu verwenden FlowLayoutPanel
aber wir haben die Größenänderung nicht so hinbekommen, wie wir es wollten.Vorzugsweise sollten wir die Verankerung der benutzerdefinierten Steuerelemente nur auf „Links“ und „Rechts“ einstellen müssen.Wir haben auch über die Verwendung von a nachgedacht TableLayoutPanel
Das dynamische Hinzufügen von Zeilen war bisher jedoch ein zu großer Aufwand.
Dies muss ein recht häufiger Anwendungsfall sein, und es kommt mir etwas seltsam vor, dass das FlowLayoutPanel
hat keine intuitive Möglichkeit, dies zu tun. Hat jemand etwas Ähnliches gemacht oder hat er Tipps oder Tricks, um uns auf den Weg zu bringen?
Prost!
/Adam
Lösung
Wenn Sie keine Datenbindung verwenden möchten (über DataRepeater
Steuerung, wie oben erwähnt), könnten Sie eine normale verwenden Panel
steuern und einstellen AutoScroll
Eigenschaft auf true (um Bildlaufleisten zu aktivieren).
Anschließend können Sie Ihre benutzerdefinierten Steuerelemente manuell hinzufügen und festlegen Dock
Eigentum eines jeden zu Top
.
Andere Tipps
.NET 3.5 SP1 führte ein DataRepeater Windows Forms-Steuerelement, das so klingt, als würde es tun, was Sie wollen.Binden Sie es an die Liste der „Downloads“ (oder was auch immer Ihre Liste darstellt) und passen Sie jedes Elementfeld so an, dass es die von Ihnen benötigten Steuerelemente enthält.