Дочерняя форма скрыта за родительским контейнером MDI - PullRequest
3 голосов
/ 12 августа 2011

При открытии дочерней формы она скрывается за строкой заголовка родительского контейнера MDI.

enter image description here

Для дочерней формы WindowState установлено значение Maximized.FormBorderStyle установлено на None.

Если я минимизирую родительский MDI и максимизирую его, тогда дочерняя форма выходит вперед.

Как преодолеть эту ситуацию?

Редактировать:

Я использую следующий код для открытия дочерней формы.

    this.childForm= new ChildForm();
    this.childForm.MdiParent = this;
    this.WindowState = FormWindowState.Maximized;

    this.childForm.Dock = DockStyle.Fill;
    this.childForm.Show();
    this.childForm.BringToFront();
    this.childForm.Focus();

Ответы [ 3 ]

4 голосов
/ 12 августа 2011

Попробуйте следующий код.

    Form1 newMDIChild = new Form1();
    newMDIChild.MdiParent = this;
    newMDIChild.Show();
    this.LayoutMdi(MdiLayout.Cascade);
    newMDIChild.Dock = DockStyle.Fill;
3 голосов
/ 12 августа 2011

Собственная реализация Windows MDI не может работать с дочерними окнами MDI без полей. К сожалению, Winforms забывает применить это ограничение. Вы можете переместить назначение WindowState после вызова Show (), но это вызывает другую проблему.

Только не делайте это без границ, граница все равно не видна.

0 голосов
/ 21 мая 2013
AboutBox1 ab = new AboutBox1();
ab.MdiParent = MDIForm.ActiveForm;
ab.TopMost = true;
ab.Show();
...