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

Я использую vb.net 2017. Я хочу разместить несколько панелей и закрепить их, чтобы создать конфигурацию, как на прикрепленном изображении:

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

Таким образом, эти панели должны быть состыкованы и занимать всю форму. Я пробовал несколько режимов стыковки, также использовал «Отправить на задний план» / «Переместить на передний план», но я не могу делать то, что хочу.

Как мне это сделать?

См. эти заметки о закреплении панелей в контейнере.

Jimi 26.11.2018 17:32

TableLayoutPanels отлично подходят для такого рода вещей, вы пробовали использовать один из них? Они позволяют очень легко управлять макетом и соотношением изменения размеров ваших панелей, вам просто нужно использовать TableLayoutPanel для управления размером каждой области и оставить стиль док-станции всех дочерних элементов управления для заполнения

soohoonigan 26.11.2018 17:34

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

LarsTech 26.11.2018 17:42

@LarsTech пробовал не работает,

Adriano 26.11.2018 17:47

"Не работает" не помогает. Мои инструкции были в пустой форме, и это действительно работает.

LarsTech 26.11.2018 17:48

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

Adriano 26.11.2018 17:55

Установите для трех панелей указанный мной стиль док-станции, затем поиграйте с методами BringToFront для панелей, пока не получите все правильно. Достаточно просто вынести левую пристыкованную панель вперед, чтобы она заработала. Или используйте меню «Вид» - «Другие окна» - «Структура документа», чтобы настроить z-порядок.

LarsTech 26.11.2018 18:02

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

Adriano 26.11.2018 18:05

Я сказал вынести левую панель на передний план.

LarsTech 26.11.2018 18:08

Порядок имеет большое значение. Сначала стыкуем снизу, потом налево, потом заливаем. Если заказ неправильный, он будет выглядеть иначе. Щелкните правой кнопкой мыши и переместите на передний план или отправьте на задний план, или просто удалите и повторите.

Hans Passant 26.11.2018 18:08

Начнем так: в пустой форме создайте панель и установите для ее свойства dock значение TopLeft, создайте еще одну панель и установите для ее свойства dock значение TopRight, затем измените размер панелей в соответствии с вашими потребностями и добавьте цвета.

preciousbetine 26.11.2018 18:12

Самый простой способ помочь с z-порядком - просмотреть структуру документа и переместить панели вверх / вниз в контейнере (в данном случае контейнер - это форма).

HardCode 26.11.2018 18:56

@Adriano - я использую комбинацию панелей макета таблицы и панелей для достижения такого эффекта.

dbasnett 26.11.2018 19:25

Используйте окно Document Outline (находится в окне просмотра / других окнах), чтобы переместить панели в правильный Z-порядок. Это так просто.

GuidoG 27.11.2018 11:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
14
239
1

Ответы 1

Вот что я делаю: добавляю TableLayoutPanel в форму и устанавливаю Dock на Fill.

Затем я бы добавил к нему несколько строк и столбцов, чтобы я мог объединить их для получения результатов. Исходя из того, что я вижу, похоже, у вас должно получиться 5 столбцов по 20% и 4 строки по 25%.

Затем перетащите Panel в верхнюю левую ячейку TableLayoutPanel.
. Установите его:

.Column = 0
.ColumnSpan = 2
.Row = 0
.RowSpan = 3
.Dock = Fill 

Выполните эту процедуру и добавьте еще две панели. Один будет начинаться в строке 0, столбце 2, а другой - в строке 3, столбце 0.

Возможно, вам придется поиграть с числами, чтобы добиться желаемых результатов. Когда вы получите то, что хотите, вы можете установить поля всех панелей на 0.

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

Другие вопросы по теме