Контейнеры C# — вертикальное заполнение пространства при изменении размера

StackOverflow https://stackoverflow.com/questions/918064

Вопрос

Я новичок в C# и работаю над небольшим проектом, чтобы освоить Visual Studio 2008.Я разрабатываю графический интерфейс на C#, и у меня есть TabControl с тремя GroupBox.Эти три групповых поля привязаны к левой и правой части экрана и отлично работают при изменении размера по горизонтали.

Я бы хотел, чтобы эти три поля занимали 33% высоты экрана и корректно изменяли размер.Я пробовал возиться с привязкой, но, похоже, не нашел ответа.Я тоже искал что-то подобное, но, к сожалению, поиск контейнеров позиционирования дает все CSS и HTML.

Кажется, это довольно распространенная вещь, но я не могу найти простой способ сделать это.Если бы кто-то мог указать мне правильное направление, я был бы очень признателен.

Спасибо!

Это было полезно?

Решение

Попробуйте ТаблицаLayoutPanel.Я считаю, что он делает именно то, что вы хотите.Он позволяет определять столбцы и строки внутри своей области, указывая их ширину (для столбцов) и высоту (для строк) в процентах или пикселях.Затем вы можете поместить групповой блок в каждую ячейку и установить для его свойства Dock значение Fill, и его размер будет корректно изменяться вместе с ячейкой при изменении размера TableLayoutPanel (чего можно легко добиться с помощью закрепления или привязки).

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

Это действительно попытка в темноте, но, может быть, вы могли бы попробовать использовать разделенные панели?

Редактировать:Я только что проверил в Visual Studio и думаю, что TableLayoutPanel может делать то, что вы хотите.

Редактировать2:блин, избит до отказа :)

Обработка формы Изменить размер событие:Добавьте туда код для вычисления нового размера/положения элементов управления.Остерегайтесь вмешательства в свойство Anchor элементов управления.Возможно, вам придется привязать к None и самостоятельно вычислить левое и правое положение.

Поскольку вы учитесь, я думаю, вы предпочитаете получить не полное решение, а направление.Тогда никакого кода от меня ;-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top