为什么插入文本框 C# 时 MDI 子窗体不显示

Why MDI child form not show when I insert textbox C#

我创建的是Form1,创建的MDI子窗体是Form2。 Form2 window 状态在父窗体中最大化。

我的一些代码:

bool IsOpen = false;
foreach (Form f in Application.OpenForms)
{
    if (f.Text == "Manage Model")
    {
        IsOpen = true;
        f.Focus();
        break;
    }
}

if (IsOpen == false)
{
    var fmodel = new formModel();
    fmodel.MdiParent = this;
    fmodel.WindowState = FormWindowState.Minimized;
    fmodel.Show();
    fmodel.WindowState = FormWindowState.Maximized;
}

// Close another forms
foreach (Form frm in this.MdiChildren)
{
    if (!frm.Focused)
    {
        frm.Visible = false;
        frm.Dispose();
    }
}

Form2是空白的我试过程序点击菜单打开Form2显示成功

我在Form2中插入label1,打开Form2显示成功

但是当我在 Form2 中插入 textbox1 或 button1 并打开 Form2 时,它不显示。只是眨眼而已。

谁能告诉我为什么会这样?谢谢。

这是错误的:

f.Focus();

这也是:

if (!frm.Focused)
{
    frm.Visible = false;
    frm.Dispose();
}

它们应该是:

f.Activate();

和:

if (frm != ActiveMdiChild)
{
    frm.Close();
}