我有一个MDIForm
(frmMain
)和2个Child Form
(frmInput
和frmOutput
)。在frmMain
上有一个menustrip
(2个toolstripmenuitems
(输入项和输出项))。
现在,当我运行程序时,单击toolstripmenuitems
-输入,显示格式frmInput
,然后单击frmInput
中的按钮进行一些计算。完成此计算后,将显示frmOutput
。
但是现在有一个问题,当计算完成frmOutput
显示时,这个frmOutput
不在MDIForm
内部。那就是独立形式。因此,当我单击toolstripmenuitems
-输出时,再次显示frmOutput
,但此表单位于MDIForm中。我已经检查表格是否已经打开。但是frmOutput
frminput's
显示的第一个button
不会输入此检查。仅当我单击toolstripmenuitems
-输出时,代码才会检查表单是否打开。
下面的MDIForm代码
public bool HaveNotOpened(Form frm_Parent, string frm_child)
{
bool bReturn = true;
for (int i = 0; i < frm_Parent.MdiChildren.Length; i++)
{
if (frm_Parent.MdiChildren[i].Name == frm_child)
{
frm_Parent.MdiChildren[i].BringToFront();
frm_Parent.MdiChildren[i].WindowState = fws;
bReturn = false;
break;
}
}
return bReturn;
}
private void inputToolStripMenuItem_Click(object sender, EventArgs e)
{
frmInput fInput = new frmInput(this);
if (HaveNotOpened(this, "frmInput"))
{
fInput.MdiParent = this;
fInput.Show();
}
}
public void outpuToolStripMenuItem_Click(object sender, EventArgs e)
{
frmOutput output = new frmOutput();
if (HaveNotOpened(this, "frmOutput"))
{
output.MdiParent = this;
output.Show();
}
}
frmInput
代码:
private frmOutput f2 = null;
private frmMain f1 = null;
public frmInput(frmMain f1)
{
f1 = new frmMain();
f2 = new frmOutput();
InitializeComponent();
}
private async void btnRun_Click(object sender, EventArgs e)
{
// Calcuation
f2.MdiParent = f1;
f2.Show();
}