我的 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();
}
}