Как я могу сделать несколько элементов управления в форме Windows автоматически изменить размер окна? - PullRequest
1 голос
/ 29 апреля 2011

Я новичок в Windows Forms в Visual Studio, и мне интересно, как автоматически изменить размеры элементов управления до размера окна.

Скажем, у меня есть 2 элемента управления на панели, список и кнопка,Я хочу, чтобы кнопка пристыковывалась к нижней части, и я хочу, чтобы окно списка занимало остальное пространство.когда размер окна изменяется, кнопка должна быть внизу (как и ожидалось при стыковке), а окно списка должно растягиваться до кнопки.

Есть ли способ сделать это без какого-либо кода?

Спасибо.

Ответы [ 5 ]

3 голосов
/ 29 апреля 2011

Dock довольно прост в использовании, но я рекомендую использовать свойства Anchor. Измените размер вашей формы до разумного размера в конструкторе. Затем разместите элементы управления так, чтобы они выглядели так, как вы хотите. Затем решите, какие элементы управления должны изменить размер с формой и установите свойство Anchor следующим образом:

  • Если вы хотите изменить размер элемента управления с шириной формы, установите привязку Right.
  • Если вы хотите изменить высоту, установите нижний якорь.
  • Если вы хотите, чтобы элемент управления оставался правым при изменении размера формы, снимите левую привязку.
  • Если вы хотите, чтобы элемент управления оставался нижним при изменении размера формы, отмените привязку Top.

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

1 голос
/ 29 апреля 2011

Когда вы хотите сохранить соотношение сторон каждого элемента управления, это действительно запутанно. Один из способов, который не совсем на должном уровне, если вы хотите исправить данные, это использовать TableLayoutPanel и использовать Dock и Anchor мудро чтобы достичь того, что вы хотите.

enter image description here

1 голос
/ 29 апреля 2011

Вы можете использовать SplitContainer

Google для примеров.Вот один

1 голос
/ 29 апреля 2011

Используйте опции док-станции и заливки на элементах управления.Посмотрите свойства для каждого объекта и контейнеров, если они есть в любом.

0 голосов
/ 29 апреля 2011

Попробуйте установить для свойства Dock ListBox значение Fill.

Однако вам нужно будет следить за одной вещью: по умолчанию размер ListBox будет сам по размеру отображать все элементы списка.Если вы измените размер элемента управления так, чтобы он отображал частичный элемент, он будет сам настраиваться, чтобы отобразить полный элемент.Это может привести к тому, что элемент управления потеряет свое поведение при стыковке.Для этого нужно установить для свойства IntegralHeight в ListBox значение false, что указывает на то, что элемент управления не изменяет свой размер, чтобы соответствовать целым элементам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...