Autosizing WinForms Dialog, чтобы соответствовать внутреннему содержанию - PullRequest
2 голосов
/ 02 ноября 2010

Я пишу своего рода «универсальный диалог контейнера», который гарантирует, что все модальные диалоги в приложении будут иметь одинаковый «хром» (а именно кнопки, значки и т. Д.). Я придумал следующее:

alt text

containerPanel - это просто System.Windows.Forms.Panel.

Теперь мне нужно следующее: для каждого диалога в приложении я хочу создать отдельный UserControl (не полноценный Form), а затем «разместить» его внутри этого общего диалога. Для этого мне нужно как-то сделать этот диалог саморегулируемым, чтобы он уменьшался или увеличивался в зависимости от размера элемента управления, размещенного внутри него.

Как я могу это сделать? Нужен ли какой-то элемент управления макетом, или для этого есть какое-то специальное магическое свойство?

Ответы [ 2 ]

5 голосов
/ 02 ноября 2010

Существует логическое свойство autosize для windows.form.control.При значении true это позволяет автоматическому изменению размера элемента управления в соответствии с его содержимым

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

Вы можете перебирать коллекцию Controls и искать нижний нижний угол каждого перечисляемого элемента управления, находить максимальный x и максимальный y и устанавливать форму (контейнер) Width и Height соответственно.

...