Развертывание MDIchild до MDIParent автоматически при загрузке формы

Я новичок в WinForms и работаю над родительским дочерним приложением. Я создал родительский элемент MDI и загрузил в него дочернюю форму.

Когда я выбираю меню в родительском элементе MDI, дочерняя форма загружается, но не разворачивается полностью. Мне нужно вручную максимизировать его, чтобы он соответствовал родительскому элементу MDI. Ниже приведен снимок экрана с тем, что я получаю во время загрузки формы.

Фактический результат

Каждый раз при загрузке формы я должен ее максимизировать. Ниже приведен код, который я использую.

private void newDeploymentToolStripMenuItem_Click(object sender, EventArgs e)
    {
        NewDeployment nwDeploy = new NewDeployment();
        nwDeploy.MdiParent = this;
        nwDeploy.Dock = DockStyle.Fill;
        nwDeploy.WindowState = FormWindowState.Maximized;
        nwDeploy.Show();
    }

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

Есть ли другой способ сделать это? Любая помощь будет принята с благодарностью.

Ожидается


person Karthik Venkatraman    schedule 20.03.2019    source источник
comment
Попробуйте изменить WindowState после его отображения. Возможно, событие FormShown в порядке. Подумайте о том, чтобы собрать быстрый минимальный воспроизводимый пример, затем кто-нибудь может поиграть с ним или посмотреть проблемы.   -  person Sinatr    schedule 20.03.2019
comment
nwDeploy.Show(); nwDeploy.WindowState = FormWindowState.Maximized;. Удалить nwDeploy.Dock = DockStyle.Fill;.   -  person Jimi    schedule 20.03.2019
comment
зачем закреплять дочернюю форму MDI? В этом нет никакого смысла. Это даже заблокировало бы отображение других дочерних форм MDI в основной форме. Просто установите WindowState на Maximized. Однако, если у вас открыт дочерний MDI-файл, и вы измените его размер (чтобы он не был максимальным), все новые созданные дочерние MDI-формы также не будут развернуты. Так работает MDI, его нормальное поведение   -  person GuidoG    schedule 20.03.2019
comment
@GuidoG. Они будут работать только над одной формой за раз. следовательно, я стыкую его. также содержание тяжелое.   -  person Karthik Venkatraman    schedule 20.03.2019
comment
Если у пользователей может быть только одна форма, зачем тогда использовать MDI?   -  person GuidoG    schedule 20.03.2019
comment
Но все же MDI Children не должны стыковаться, MDI позаботится об этом уже за вас.   -  person GuidoG    schedule 20.03.2019
comment
@GuidoG. В приложении есть 10 модулей, которые будут управляться выбором из меню. следовательно использовали MDIChild   -  person Karthik Venkatraman    schedule 20.03.2019
comment
Но все же вам не нужно стыковать MDI Child. Вы хотите заставить его заполнить главное окно, но MDI пытается сделать то же самое или пытается не максимизировать его. Вы боретесь с MDI в своем приложении   -  person GuidoG    schedule 20.03.2019


Ответы (1)


Благодаря Джими и Синатру я изменил код, загрузив форму, а затем изменив ее состояние окна на максимальное.

Ниже мой обновленный код

 NewDeployment nwDeploy = new NewDeployment();
            nwDeploy.MdiParent = this;
            nwDeploy.Dock = DockStyle.Fill;
            nwDeploy.Show();
            nwDeploy.WindowState = FormWindowState.Maximized;
person Karthik Venkatraman    schedule 20.03.2019