Разместите панели, размер которых может изменяться автоматически

Мой дизайн таков: у меня есть несколько панелей, скажем Panel1, Panel2, Panel3, ... мои главные окна состоят из двух или более панелей, например, Window1 состоит из Panel1 и Panel2, Window2 состоит из Panel3 и Panel2,... Они все расположены один под другим, и может случиться так, что мне придется что-то добавить или убрать с панели, чтобы она увеличилась или уменьшилась. Должен ли я использовать TableLayout, чтобы они были выровнены? Или есть опция, которая сообщает моей Panel1, что она должна быть там, где заканчивается Panel2?

Обновление: я забыл упомянуть, что работаю над настольным приложением. Изучая как TableLayoutPanel, так и GridLayoutPanel, я прочитал, что это имеет значение.


person Verena Haunschmid    schedule 06.02.2013    source источник


Ответы (1)


Нет возможности указать Panel2 начинать с того места, где заканчивается Panel1. Однако «необходимо использовать TableLayout» также неверно. Например, вы можете использовать ручное изменение положения или панель макета потока. На первый взгляд, из вашего краткого описания кажется, что панель компоновки потока может подойти здесь лучше, чем элемент управления компоновкой таблицы.

person U1199880    schedule 06.02.2013
comment
Я согласен. Это похоже на потоковую компоновку, содержащую автоматически изменяющиеся размеры панелей. - person JosephHirn; 06.02.2013
comment
спасибо за идею, я только мельком взглянул на FlowLayout, и он, кажется, ставит панели в ряд, пока есть место, верно? Но я хочу, чтобы мои панели были друг под другом, независимо от того, сколько места с правой стороны. Разве строки TableLayout не изменяются автоматически в зависимости от содержимого? - person Verena Haunschmid; 07.02.2013
comment
Здесь помогают два свойства FlowLayoutPanel: .FlowDirection (чтобы вы могли перемещать его вниз, а не поперек) и .WrapContents (хотя вам это, вероятно, не понадобится). Есть и другие интересные свойства, такие как расстояние между элементами и т. д. См. msdn.microsoft.com/en-us/library/ для всех свойств и методов. - person U1199880; 07.02.2013
comment
thx я посмотрю на это! Я добавляю к своему вопросу информацию о том, что я работаю над настольным приложением. Есть ли разница? - person Verena Haunschmid; 08.02.2013
comment
FlowLayoutPanel — это элемент управления WinForm, поэтому его удобно использовать на рабочем столе. Но на самом деле можно просто попробовать. - person U1199880; 08.02.2013