Контейнеры C # - заполнение пространства по вертикали при изменении размера - PullRequest
1 голос
/ 28 мая 2009

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

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

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

Спасибо!

Ответы [ 3 ]

1 голос
/ 28 мая 2009

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

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

Edit2: черт, побитый удар:)

1 голос
/ 28 мая 2009

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

0 голосов
/ 28 мая 2009

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

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

...