Видя ваше последнее редактирование, я полагаю, что причина того, что содержимое вашей дочерней формы не занимает весь экран, даже если оно развернуто, заключается в том, что ваш контент / макет не являются гибкими.
Куда бы вы ни поместили элементы управления в режиме разработки, они окажутся в конечном итоге во время выполнения, независимо от того, насколько большим или маленьким вы сделаете окно. Если окно слишком маленькое, чтобы содержать их все, они либо будут закрыты, либо вы увидите полосы прокрутки. В качестве альтернативы, если окно будет сделано больше, чем необходимо, вы увидите много пустого пространства.
Обойти это можно либо установив свойства Dock
и Anchor
элементов управления, что заставит их расширяться и сжиматься в соответствии с макетом их содержимого. форма. Вы также можете поместить свои элементы управления в TableLayoutPanel
или FlowLayoutPanel
, чтобы помочь управлять их расположением.
Что касается вопроса, который вы первоначально задавали, я все еще не могу сказать, против ли вы того, как выглядит MDI-приложение, или вы просто не понимаете, как правильно его реализовать. Пояснительный комментарий, который вы предложили, на самом деле проясняет мне вещи на меньше - вы опубликовали фрагмент кода, но не объяснили, что это значит. Как я писал в комментарии, нет (не хакерского) способа показать форму, в которой нет кнопок свертывания, максимизации и закрытия (установка свойства FormBorderStyle
на «Нет» делает это, но я думаю, что это глупое решение, которое просто позволяет вам использовать неправильный элемент управления для задания - оно не будет вести себя как форма, пользователь не сможет перемещать его как форму и т. д., так почему использует форма?).
Если вы действительно хотите иметь одно окно приложения с изменяющимся содержимым в центре, вы должны создать серию UserControls
. Вы можете расположить каждый пользовательский элемент управления с необходимыми дочерними элементами управления, как если бы вы использовали форму (используя методы разметки флюида, которые я обсуждал выше), добавить каждый пользовательский элемент управления в основную форму, установить для свойства Dock
каждого элемента управления значение «Заполнить "(чтобы они заполнили всю область просмотра), а затем напишите код, чтобы просто поменять видимый в данный момент пользовательский элемент управления в области просмотра основной формы. Преимущество использования UserControl
по сравнению с чем-то вроде Panel
состоит в том, что вы консолидируете весь свой код в единый элемент управления, так же, как вы это делаете с Form
. Вы можете использовать элемент управления с вкладками, но если вы не хотите показывать какие-либо признаки того, что существует несколько форм (что и является вашей целью), это также будет неправильным элементом управления для задания.
Если вы буквально хотите открыть дочерние формы внутри своей основной формы, как указывает заголовок вашего вопроса, вам действительно следует использовать MDI. Если вы не понимаете , как сделать это, вам нужно уточнить ваш вопрос.