我的Windows窗体应用程序中有3个表单。
1。是主要形式,它是mdiParent。
2。是一个mdiChild形式,将以最大化状态显示。
3。是另一个将以正常状态显示的mdiChild。
当我打开form2
时,它会以最大化状态显示,但问题是当我同时打开form3
时,form3
也会以最大化状态显示,当我更改状态时form3
在运行时手动恢复正常状态(恢复窗口)form2
也恢复正常状态。换句话说:他们的状态是相对的。
有一部分代码在form3
代码中打开form2
。
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
string str = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
string str3 = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
var str2 = dataGridView1.SelectedRows[0].Cells[0].Value ;
Forms.frmTrack frm = new frmTrack();
frm.CustomerID = (int)str2;
frm.CompanyName = str;
frm.CustomerName = str3;
Classes.Function fn = new Classes.Function();
frm.WindowState = FormWindowState.Normal;
fn.ShowForm(frm, this.MdiParent);
frm.WindowState = FormWindowState.Normal;
}
这是我的ShowForm()
函数:
public void ShowForm(Form frmChild,Form frmParent)
{
bool formFound = false;
foreach (Form item in frmParent.MdiChildren)
{
if (item.Name == frmChild.Name)
{
item.Activate();
formFound = true;
}
}
if (!formFound)
{
frmChild.MdiParent = frmParent;
frmChild.Show();
}
}