Можно ли применять Margin даже при установленном свойстве Dock?

У меня есть WinForms Form с несколькими элементами управления. Все они представляют собой элементы управления GrouBox, и я хочу, чтобы они располагались друг над другом с установленным вертикальным полем между ними. Я установил для свойства Dock значение Top, и оно упорядочивает их правильно, но игнорирует поля (элементы управления находятся настолько близко друг к другу, насколько это возможно).

Можно ли как-то применить эти поля? По сути, он будет вычислять обычную закрепленную позицию (как если бы поле было равно 0), а затем применяет поле. Возможно ли что-то подобное?

Другой способ, который я пробовал, - это FlowLayoutPanel с опцией TopDown. Однако тогда мне нужно вручную установить размер и левые/правые привязки.

Есть ли простой способ выполнить этот сценарий или мне следует придерживаться того, что у меня уже есть?


person Kornelije Petak    schedule 14.08.2011    source источник
comment
Попробуйте использовать Padding вместо Margin, когда элемент управления закреплен.   -  person Cody Gray    schedule 14.08.2011
comment
Да, требуется ФЛП. Установите свойство Margin для элементов управления внутри него, чтобы создать зазор.   -  person Hans Passant    schedule 14.08.2011


Ответы (3)


Установленное свойство стыковки будет игнорировать ваши свойства заполнения между элементами управления GroupBox, поэтому лучше всего для этого использовать панели Flow или Table.

person LarsTech    schedule 14.08.2011

Поместите каждый GroupBox в панель, установите свойство Panel Dock на Top, свойство Group Box Dock на Fill. Затем установите Padding на панелях.

person sunnyaprilafternoon    schedule 09.07.2013
comment
Прокладка - это главное! По крайней мере, в моем случае. - person Arman; 20.10.2013

Добавьте фиктивную прозрачную панель, закрепленную между каждым текстовым полем, с высотой, равной точному расстоянию, которое вам нужно.

person Haz    schedule 24.02.2015