WinForms автоматически изменяет размер по вертикали, оставляя ширину регулируемой? - PullRequest
8 голосов
/ 19 октября 2010

Можно ли использовать механизм разметки WinForms для настройки формы таким образом, чтобы высота регулировалась полностью автоматически в соответствии с содержимым, но ширина могла бы регулироваться пользователем?

В качестве примера рассмотрим следующую несколько надуманную форму:

  • TLP: TableLayoutPanel, с 1 строкой и 2 столбцами.
  • label1: Label, содержится в левом столбце. Задайте для Text что-то длинное, AutoSize для false, Dock для Fill.
  • button1: кнопка, содержащаяся в правом столбце. Установите для AutoSize значение true.
  • Теперь установите для строки значение «AutoSize», для первого столбца - «100%», а для второго столбца - «AutoSize».
  • Наконец, установите для целого TLP значение AutoSize true, AutoSizeMode - GrowAndShrink.

На этом этапе TLP может быть разумно изменено по горизонтали, но WinForms, похоже, не позволяет этого.

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

Ответы [ 2 ]

6 голосов
/ 13 января 2011

Надеюсь, у вас уже есть решение.Но в случае, если у кого-то такой же запрос, вы можете установить ширину свойства «Максимальный размер» для «Фактической ширины формы» и «Высота для максимального размера» равной 0.

1 голос
/ 03 ноября 2010

Это вполне возможно. Для этого вы должны переопределить SetBoundsCore в вашей форме. В этом случае вы можете контролировать высоту так, чтобы она не изменялась, когда может потребоваться изменение размера. Просто сохраните высоту, которую вы хотите, чтобы она была в переменной, а затем переопределите это значение всегда. Таким образом, когда вы автоматически изменяете высоту, вы сохраняете новую высоту перед установкой формы Height и SetBoundsCore будут учитывать эту новую высоту.

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