Динамический нисходящий список элементов управления в WindowsForms и C #?

StackOverflow https://stackoverflow.com/questions/27674

Вопрос

В нашем проекте, Остроконечный, мы пытаемся создать компонент загрузки, аналогичный окнам загрузки в Firefox или Safari.То есть, один-единственный нисходящий список загрузок, которые представляют собой пользовательские элементы управления, содержащие индикаторы выполнения, кнопки и тому подобное.

Требования заключаются в том, что должен быть один-единственный список с одним элементом в каждой строке.Каждый элемент должен быть пользовательским элементом управления.Весь список должен иметь динамически изменяемый размер, так что, когда вы делаете его длиннее / короче, список добавляет полосу прокрутки, когда это необходимо, а когда вы делаете его тоньше / шире, пользовательские элементы управления должны изменять размер по ширине списка.

Мы пробовали использовать FlowLayoutPanel но нам не удалось добиться того, чтобы изменение размера работало так, как мы хотим.Предпочтительно, чтобы нам нужно было только установить привязку пользовательских элементов управления влево и вправо.Мы также подумывали об использовании TableLayoutPanel но пока обнаружил, что динамическое добавление строк требует слишком больших накладных расходов.

Должно быть, это довольно распространенный вариант использования, и мне кажется немного странным, что FlowLayoutPanel у него нет интуитивного способа сделать это. Кто-нибудь делал что-то подобное или у вас есть советы или хитрости, чтобы помочь нам начать работу?

Ваше здоровье!
/Адам

Это было полезно?

Решение

Если вы не хотите использовать привязку данных (через DataRepeater управления, как упоминалось выше), вы могли бы использовать обычный Panel контролировать и устанавливать его AutoScroll присвоите свойству значение true (для включения полос прокрутки).

Затем вы могли бы вручную добавить свои пользовательские элементы управления и установить Dock свойство каждого из них Top.

Другие советы

.NET 3.5 с пакетом обновления 1 представил Средство обработки данных Элемент управления Windows Forms, который звучит так, как будто он будет делать то, что вы хотите.Привяжите его к списку "загрузок" (или к тому, что представляет ваш список) и настройте каждую панель элементов так, чтобы она включала необходимые вам элементы управления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top