2013-09-29 2 views
5

Я создал окно, в котором у меня будут две группы/панели и некоторые кнопки между ними. Я хочу закодировать поведение изменения размера таким образом, чтобы при расширении окна две панели увеличивали ширину, сохраняя постоянное расстояние между ними.VB/C#: изменение размера двух элементов управления одинаково

Пожалуйста, смотрите этот макет:

window resizing

Как вы видите выше, я хочу Panels «местным» и «сервер», чтобы изменить размер, сохраняя при этом расстояние между ними же. Если я использую якоря (верхний + левый + правый + нижний), левая панель будет перекрывать правый, а правая ширина будет выходить из окна. Я хочу, чтобы они делили увеличенную ширину окна одинаково.

Что касается кнопок в промежутке, то я сохранил только символы верхнего уровня. Удалив Left anchor из кнопки, он автоматически помещается в центр окна, когда окно расширяется, и это именно так, как я хочу.

Любые идеи по управлению изменением размеров панелей?

Спасибо.

ответ

15

Используйте таблицу TableLayoutPanel.

Сначала добавьте TableLayout в форму и установите для свойства Dock() значение Заполнить. Затем вам нужно настроить 3 столбца и две строки. Добавьте две кнопки в средний столбец, каждый из которых находится в своей строке. Затем настройте значения столбцов так, чтобы они были такими: enter image description here Оставьте строки на 50% на обоих. Теперь добавьте два своих GroupBoxes в 1-й и 3-й столбцы в 1-й строке. Для обоих групповых ящиков установите Dock() в Fill и RowSpan() на 2. Для верхней кнопки включите только нижний якорь. Для нижней кнопки поверните только верхний якорь. Для TableLayoutPanel установите Padding() на 5,5,5,5.

Вот как это выглядело, когда я все сделал: enter image description here

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

+1

Это работает просто отлично. Именно то, что мне нужно. Благодарю. –

Смежные вопросы