Автоматический размер TableLayoutPanel

У меня есть TableLayoutPanel внутри FlowLayoutPanel, так что я могу иметь трехмерную границу вокруг таблицы, но иметь возможность определять позиции элементов управления в таблице по своему желанию. Я хотел бы, чтобы TableLayoutPanel заполнил FlowLayoutPanel, но когда я использую свойство стыковки, кажется, что TLP сгруппирован в верхней части FLP.

Как я могу заставить TLP стыковаться, чтобы его размер изменялся при изменении размера формы?


person MrBill    schedule 02.04.2014    source источник
comment
Не используйте FlowLayoutPanel. Просто панель.   -  person LarsTech    schedule 02.04.2014
comment
Или не позволяйте размеру формы изменяться.   -  person OneFineDay    schedule 02.04.2014
comment
К сожалению, некоторые пользователи предпочитают разрешение 800 x 600, в то время как другие имеют более разумные настройки, поэтому изменение размера — это то, с чем я застрял.   -  person MrBill    schedule 02.04.2014


Ответы (1)


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

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

ДОПОЛНЕНИЕ

Стыковка всегда защелкивается на стороне контейнера и также прижимает две стороны на другой оси к краям. Привязка позволяет вам установить определенные позиции, а затем привязать одну сторону элемента управления к его родителю, чтобы изменение размера родителя сохраняло эту сторону элемента управления на том же расстоянии от родителя. По моему опыту, в 99% случаев якорение делает то же самое, что и стыковка, и даже больше, с гораздо меньшим разочарованием. Я думаю, что Splitterbars — это один из немногих случаев, когда требуется стыковка, но даже в этом случае его можно эмулировать с помощью панели Splitter. Такие вещи, как ToolStrips и меню, являются лучшим вариантом использования для стыковки, который я могу придумать.

person Bradley Uffner    schedule 02.04.2014
comment
Используя простую панель, все встало на свои места. Я все еще немного не понимаю различия между стыковкой и привязкой - я склонен согласиться с вами по поводу использования привязки, если нет причин не делать этого. Вы знаете, когда будет причина не делать этого? - person MrBill; 03.04.2014
comment
Дополнительная информация о том, когда использовать стыковку или привязку, добавлена ​​в ответ, потому что она была слишком длинной, чтобы поместиться в комментарии. - person Bradley Uffner; 03.04.2014
comment
Спасибо за дополнение, вроде того, что я думал, но это делает менее запутанным то, что вы говорите. - person MrBill; 04.04.2014