C# mdi子窗体操作mdi子窗体

2025-02-15 09:47:48
推荐回答(3个)
回答(1):

private void Button_Click() //按钮的单击事件
{
foreach(Form frm in this.MdiParent.MdiChildren) //this.MdiParent.MdiChildren就是和自己在同一个MDI父级的子窗体集合
{
if(frm.GetType()==typeof(Form3))
{
frm.Text="123"; //这里换成需要的方法
break;
}
}
Form3 child=new Form3(); //如果执行到这里还没有退出,则说明Form3没有被载入
child.Show();
child.Text="123"; //这里换成需要的方法
}

回答(2):

再form2中加一个父窗口的变量,实例化时候赋值,父窗口中再加入form3是否打开的变量,这样就能调用到了

回答(3):

private void OpenForm(string frmType, bool max = true, params object[] args)
{
foreach (var item in this.MdiChildren)
{
if (item.GetType().ToString() == "QQFind." + frmType)
{
item.Show();
item.BringToFront();
return;
}
}

Form frm = Activator.CreateInstance(Type.GetType("QQFind." + frmType), args) as Form;
frm.MdiParent = this;
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
frm.StartPosition = FormStartPosition.CenterScreen;
if (max)
{
frm.Width = mdiClient.Width - 2;
frm.Height = mdiClient.Height;
}
frm.Show();
}

在show()的时候根据情况添加执行动作即可