Динамические средства управления формой

Вы также можете попробовать этот подход сохранить ключи и значения в другом списке, а затем использовать метод dict

data=['test1', '1', 'test2', '2', 'test3', '3', 'test4', '4']

keys=[]
values=[]
for i,j in enumerate(data):
    if i%2==0:
        keys.append(j)
    else:
        values.append(j)

print(dict(zip(keys,values)))

:

{'test3': '3', 'test1': '1', 'test2': '2', 'test4': '4'}
8
задан Pero P. 2 April 2014 в 23:21
поделиться

5 ответов

Можно использовать панели с автоматическим расположением, такие как FlowLayoutPanel и TableLayoutPanel.

К сожалению, существует только 2 панели с автоматическим расположением из поля, но можно создать панель пользовательского макета.

Я рекомендовал бы Вам прочитать следующие статьи:

Как к: создайте Windows Form Изменяемого размера для ввода данных

Пошаговая демонстрация: создание Windows Form Изменяемого размера для ввода данных

Другая опция использовала бы WPF (Windows Presentation Presentation).
WPF является идеальной парой для Вашей задачи.
Средства управления WPF могут быть размещены в приложениях WinForms, таким образом, Вы не должны переключаться на него полностью.

8
ответ дан 5 December 2019 в 13:02
поделиться

@Sam я знаю этот вопрос, был о Windows Forms, но необходимо определенно начать смотреть на WPF. Этот вид сценария действительно легок в WPF с DataTemplates и TemplateSelectors.

2
ответ дан 5 December 2019 в 13:02
поделиться

Под чем Вы подразумеваете “динамичный”? Новый, фиксированный набор средств управления для каждой строки данных в наборе данных? Затем используйте a UserControl это содержит Ваши средства управления.

Или Вы подразумеваете, что, в зависимости от Вашего формата данных, хотите предоставить пользователю специализированный набор средств управления, скажем, один TextBox для каждого столбца?

1
ответ дан 5 December 2019 в 13:02
поделиться

Да, я нашел вручную, что расположение управляет (постепенное увеличение их свойства Top высотой управления плюс поле, когда я иду) быть довольно эффективным.

Другой подход должен поместить Ваши средства управления в Панели с набором Прикрепления к Вершине, так, чтобы каждая последовательная панель прикрепилась против той выше. Затем можно переключить видимость отдельных панелей, и средства управления внизу накинутся для заполнения свободного места. Знайте, что это может быть немного непредсказуемо: показ скрытой панели, это прикрепляется, может иногда менять свое положение относительно других прикрепленных средств управления.

1
ответ дан 5 December 2019 в 13:02
поделиться

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

Например, я использовал Отражение для отображения определенного типа управления к определенному свойству на моих объектах области на более старом проекте.

Вы могли попытаться генерировать код из шаблонов с помощью t4, см. Шаблоны T4 в Visual Studio для Скринкаста Генерации кода для простого примера. Можно применить это к WinForms.

Также DevExperience имеет хорошую (дорогую) платформу, посмотрите DevExpress eXpressApp Framework™.

1
ответ дан 5 December 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: