WinForms GroupBox имеет нежелательный вертикальный зазор

Когда я создаю GroupBox, устанавливаю Autosize=true и AutoSizeMode=GrowAndShrink и помещаю туда какой-то элемент управления (например, Button), под ним остается большое пустое пространство, что делает GroupBox слишком высоким:

Нежелательный вертикальный разрыв

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

(На самом деле этот вопрос задавался раньше здесь, но рабочий ответ не был предоставлен)


person jbb    schedule 22.11.2016    source источник
comment
Вы проверили поля и отступы на каждом из элементов управления?   -  person Dan Wilson    schedule 22.11.2016
comment
Нижнее поле кнопки? Заполнение группового поля?   -  person Daniel Dušek    schedule 22.11.2016
comment
Просто сделайте это в дизайнере и обратите внимание на маркеры перетаскивания, кнопка на самом деле находится посередине. Это просто выглядит не в порядке, потому что GB рисует верхнюю строку слишком низко, что необходимо, чтобы она соответствовала заголовку. Вы можете сделать его немного лучше, изменив Padding.Bottom с 3 на 0, но вы не можете сделать его отрицательным.   -  person Hans Passant    schedule 22.11.2016
comment
На самом деле он работает именно так, как задумано. Дополнительное пространство предназначено для лучшего сброса. Он не отображается во время выполнения, по крайней мере, здесь.   -  person TaW    schedule 22.11.2016
comment
И для отступа GroupBox, и для поля Buttons установлены значения по умолчанию, равные 3 (сверху, снизу, слева, справа). Они вносят 3 пикселя в зазор, но это далеко не его размер, поэтому установка их на 0 не решает проблему:/   -  person jbb    schedule 22.11.2016
comment
Я не думаю, что есть простой способ избавиться от этого. Как сказал @HansPassant, кнопка находится точно в центре группового поля, хотя из-за названия она не выглядит так.   -  person Pikoh    schedule 22.11.2016
comment
На самом деле, если вы измените размер шрифта группового поля, скажем, на 1,25, вы увидите, что нижний пробел исчезнет, ​​но тогда он у вас появится.   -  person Pikoh    schedule 22.11.2016
comment
Я нахожу странным, что Microsoft разработала этот элемент управления с таким большим жестко закодированным пробелом. Не лучше ли им использовать высокое значение нижнего поля по умолчанию, чтобы заставить разработчиков следовать их стандарту дизайна? Они уже делают это со значением поля по умолчанию, равным 3, для многих элементов управления. Кроме того, у них самих нет этого пробела во многих их групповых полях. (взгляните на Параметры папки на панели управления для хорошего примера с несколькими групповыми полями с красивыми, одинаково большими верхними и нижними полями)   -  person jbb    schedule 22.11.2016
comment
Зазор одинаков вверх и вниз, но вы его не видите из-за текста группового поля. Я вижу в этом ошибку дизайна Autosize, но это так. И откуда вы знаете, что в параметрах папки они используют групповой ящик с autosize=true?   -  person Pikoh    schedule 22.11.2016
comment
На самом деле, если я поставлю AutoSize=true и Dock=fill на кнопку, пробел исчезнет! Однако правое и левое поля кнопки исчезают, и я не уверен, что это решение, которое хорошо работает для других элементов управления.   -  person jbb    schedule 22.11.2016