Контейнеры C# — вертикальное заполнение пространства при изменении размера
-
06-09-2019 - |
Вопрос
Я новичок в C# и работаю над небольшим проектом, чтобы освоить Visual Studio 2008.Я разрабатываю графический интерфейс на C#, и у меня есть TabControl с тремя GroupBox.Эти три групповых поля привязаны к левой и правой части экрана и отлично работают при изменении размера по горизонтали.
Я бы хотел, чтобы эти три поля занимали 33% высоты экрана и корректно изменяли размер.Я пробовал возиться с привязкой, но, похоже, не нашел ответа.Я тоже искал что-то подобное, но, к сожалению, поиск контейнеров позиционирования дает все CSS и HTML.
Кажется, это довольно распространенная вещь, но я не могу найти простой способ сделать это.Если бы кто-то мог указать мне правильное направление, я был бы очень признателен.
Спасибо!
Решение
Попробуйте ТаблицаLayoutPanel.Я считаю, что он делает именно то, что вы хотите.Он позволяет определять столбцы и строки внутри своей области, указывая их ширину (для столбцов) и высоту (для строк) в процентах или пикселях.Затем вы можете поместить групповой блок в каждую ячейку и установить для его свойства Dock значение Fill, и его размер будет корректно изменяться вместе с ячейкой при изменении размера TableLayoutPanel (чего можно легко добиться с помощью закрепления или привязки).
Другие советы
Это действительно попытка в темноте, но, может быть, вы могли бы попробовать использовать разделенные панели?
Редактировать:Я только что проверил в Visual Studio и думаю, что TableLayoutPanel может делать то, что вы хотите.
Редактировать2:блин, избит до отказа :)
Обработка формы Изменить размер событие:Добавьте туда код для вычисления нового размера/положения элементов управления.Остерегайтесь вмешательства в свойство Anchor элементов управления.Возможно, вам придется привязать к None и самостоятельно вычислить левое и правое положение.
Поскольку вы учитесь, я думаю, вы предпочитаете получить не полное решение, а направление.Тогда никакого кода от меня ;-)