Я создаю складную панель управления, состоящую из кликабельной метки, прикрепленной вверху со стрелкой вверх / вниз внутри, и панели под ней, которая должна заполнять оставшуюся часть элемента управления независимо от размера.
Я также добавил код, чтобы сделать элемент управления редактируемым во время разработки.
<Designer("System.Windows.Forms.Design.ParentControlDesigner,System.Design", GetType(IDesigner))> _
Я планирую иметь несколько «версий» этого элемента управления, которые будут вести себя по-разному. Например;
Один заполнен только динамически созданными флажками, которые будут содержать текущий список того, что проверено.
Другой, который содержит вручную или динамически добавленные переключатели.
Другой, разработанный вручную, и т. Д.
Таким образом, каждая из этих версий будет новым элементом управления, содержащим оригинал.
Однако я столкнулся с проблемой. Когда я добавляю элементы управления к этому пользовательскому элементу управления, например tablelayoutplanel, и устанавливаю их в Dock.Fill. Во время разработки они выглядят хорошо, когда добавленный элемент управления находится ниже метки, но затем, когда приложение запускает элемент управления внутри заливки, чтобы перекрыть метку, и когда выполнение останавливается, изменение также отражается в версии проекта.
Поэтому я пытаюсь выяснить, возможно ли создать пользовательский элемент управления, состоящий из нескольких отдельных «частей»;
Метка, которая будет недоступна для дизайнера.
Панель контейнера ниже, которая ... содержит все вещи и будет доступна во время разработки.
Запрет на то, что есть способ переопределить Dock.Fill, чтобы его верхняя позиция начиналась с X, так как я знаю, насколько высок мой ярлык? Я бы предпочел не делать код, который изменяет размеры всех вещей, так как у меня нет способа узнать, сколько вещей может или не может оказаться в ручном создании в будущем.
Я пробовал искать примеры складных панелей, но пока те, которые я обнаружил, либо вызывают ошибки конструктора, либо кода, когда я переносу их из более старых версий VS, в которые они встроены, или они находятся в C #.
Плюс, они действительно не выглядят так, как я пытаюсь достичь. Что является
Если что-то из этого не может быть сделано, пожалуйста, дайте мне знать, чтобы я мог попытаться найти другой подход к тому, чего я пытаюсь достичь, что в основном составляет; Вещи, которые начинаются с размера метки и открываются / закрываются, показывая контейнер dock.fill, который при открытии имеет элементы управления внутри и не переступает через метку.
Спасибо.
Редактировать: Добавлено быстрое видео, чтобы показать поведение.