Datagridview vs tablelayoutpanel для табличного ввода
У меня должен быть табличный элемент управления, который будет содержать ячейки, размещающие различные элементы управления в Столбцах. Каждый столбец будет содержать один и тот же элемент управления. Например, все ячейки в столбце 1 будут содержать метку типа элемента управления.
Среди тех, кто контролирует, мало расширений встроенные элементы управления, такие как метки и текстового поля, а несколько пользовательских элементов управления.
Как первый вариант я выбрал в качестве DGV управления хостингом.
Я просмотрел все документы MSDN и воспользовался помощью google, чтобы узнать, что доступно с помощью DGV. Я сделал пользовательский DGVControl и соответственно столбцы для размещения этих элементов управления.
Поначалу это была долгая и грязная работа. Потребовался почти месяц, чтобы построить DGV с моими требованиями. Каким-то образом я достиг 80% требуемой функциональности, а остальные 20% кажутся мне трудными, так как существуют сотни строк кода для того, чтобы размещенный элемент управления взаимодействовал с бизнес-моделью, а также удовлетворял базовым свойствам элемента управления DGV.
Затем я решил не использовать DGV, так как он может быть не масштабируемым в будущем.
В качестве 2-го варианта я решил использовать TLP (TableLayoutPanel).
Я расширил базовый TLP в своем классе и добавил необходимые методы.
Управление хостингом в TLP намного проще, чем в DGV. Потребовалось всего 3 дня, чтобы построить его по мере необходимости.
Так или иначе, TLP занимает значительное время, чтобы нарисовать себя. Поскольку в TLP нет встроенной функции для удаления определенной строки, я удалил элементы управления из нужной строки вручную и переместил все строки ниже нее на одну строку вверх. Имея всего 20 записей, TLP занимает почти 1,5 секунды, чтобы перекрасить себя.
Для кода нет циклов, которые работают слишком долго, и нет тяжелого фонового потока, который может вызвать это.
Я думаю, что TLP не создан для той функциональности, которая мне нужна. Это просто панель для компоновки элементов управления на форме для правильного UX.
Я не знаю, что использовать для этой самой цели. Пожалуйста, проводите.
Что я уже пробовал:
Потратил много времени на то, чтобы DGV и TLP работали по мере необходимости, но никакой помощи.