C# 如何通过名称将现有表单动态添加到集合中
我正在尝试将一些现有表单动态添加到集合中 下面的代码将遍历程序集并找到任何表单(希望我没有弄错)。如果表单与表单名称的一部分匹配,我想将其添加到集合中。一、 当然,您可以在CodeByForms.add(新frm_Form1)中显式地执行此操作。我想这样做,这样我就不会忘记添加一个表单(我想我有点懒)C# 如何通过名称将现有表单动态添加到集合中,c#,C#,我正在尝试将一些现有表单动态添加到集合中 下面的代码将遍历程序集并找到任何表单(希望我没有弄错)。如果表单与表单名称的一部分匹配,我想将其添加到集合中。一、 当然,您可以在CodeByForms.add(新frm_Form1)中显式地执行此操作。我想这样做,这样我就不会忘记添加一个表单(我想我有点懒) List Forms=new List(); 私有void addForms() { Assembly[]assemblies=AppDomain.CurrentDomain.GetAssembl
List Forms=new List();
私有void addForms()
{
Assembly[]assemblies=AppDomain.CurrentDomain.GetAssemblies();
foreach(部件中的部件a)
{
Type[]types=a.GetTypes();
foreach(类型中的类型t)
{
if(t.BaseType==typeof(Form))
{
if(t.Name.Substring(0,4).ToLower()=“frm_u2;”)
{
//如何将表单(在for循环中找到)添加到表单集合。
}
}
}
}
}
希望你能帮忙
谢谢在你的循环中,你是在寻找类型,而不是实例。当您找到一个实例,并且这是您的目标时,您可以使用来创建类型的实例,然后将其添加到集合中。是激活器使用的一个示例
Form instance = (Form)Activator.CreateInstance(t);
Forms.Add(instance);
例如,您可能有该表单的多个实例
Form instance = (Form)Activator.CreateInstance(t);
Forms.Add(instance);