为什么插入文本框 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();
}
我创建的是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();
}