Панель Flowlayout и дочерние элементы управления с автоподстройкой размеров не работают

Я пытаюсь получить очень простой макет автоматического изменения размера на winform (C # .NET). Я пробовал TableLayoutPanels и FlowLayoutPanels, но ничего не работает.

У меня есть пользовательский элемент управления, который является контейнером для других пользовательских элементов управления, которые создаются во время выполнения - я назвал его StackPanel, поскольку я хочу, чтобы он отображал дочерние элементы управления по вертикали. Я пробовал это с помощью FlowLayoutPanel, TableLayoutPanel и Panel (каждый элемент управления закреплен наверху).

Дочерний элемент управления пользователя состоит из метки, а затем любого количества радиокнопок (или любого другого стандартного элемента управления - не имеет значения).

При создании дочерних элементов управления устанавливается текст метки (если он длинный, его необходимо перенести на новую строку) и добавляются переключатели.

Кажется, не существует комбинации стыковки / автоматического изменения размера или ручной настройки размера с использованием событий Resize, которые могут заставить все отображаться без обрезки и при этом изменять размер вместе с формой.

Спасибо!


person Pete    schedule 07.05.2010    source источник


Ответы (1)


У меня был аналогичный опыт работы с обеими панелями.

FlowLayoutPanel:

По сути, вы должны оставить свои дочерние виджеты привязанными к левому верхнему углу. Не стыкуйте их. Также не закрепляйте их вправо. Автоматическое изменение размера метки будет работать только в этой конфигурации.

Затем вы можете зафиксировать событие изменения размера FlowLayoutPanel и вручную настроить всю ширину ваших дочерних компонентов.

person sechastain    schedule 07.05.2010
comment
Действительно ли установка обработчика событий - единственный способ сделать это? - person RyPope; 04.03.2014