我可以重复使用已为多个表单处理的表单吗?
本文关键字:表单 处理 我可以 | 更新日期: 2023-09-27 18:35:27
我写了下面的代码来重用处理掉的表单。但这是硬编码的,仅限于一种形式。我想使用相同的方法来检查和打开我应用程序中的所有表单。
private void CheckMdiChildren(Form frm)
{
if (frm.IsDisposed)
{
frm = new MembersList();
frm.Show();
}
else
{
foreach (Form f in this.MdiChildren)
{
if (f.GetType() == frm.GetType())
{
f.Focus();
return;
}
}
frm.MdiParent = this;
frm.Dock = DockStyle.Fill;
frm.Show();
}
}
我正在传递参数 frm,它是不同形式的对象,例如。
this.CheckMdiChildren(mbl);
和
this.CheckMdiChildren(exc);
但上面的代码总是打开成员列表窗体。
我已经在全球范围内为MainForm声明了以下表格
ExerciseChart exc = new ExerciseChart();
MembersList mbl = new MembersList();
当我在本地使用上述声明时,它可以正常工作。
有什么方法可以将此功能用于多种形式吗?
感谢快速帮助,不要犹豫,询问更多详细信息或代码!
Activator.CreateInstance 能够在运行时创建实例。使用 form 参数作为激活器的类型,并将 CreateInstance
方法强制转换为Form
var form = ( Form ) Activator.CreateInstance( frm.GetType() );