如何获取我的申请表格清单

时间:2014-10-04 08:30:41

标签: c# winforms visual-studio-2010

我如何获得所有申请表格,实际上我不想要像以下那样打开表格

Application.OpenForms

但是,我需要在ComboBox中拥有所有表单名称!! !!

1 个答案:

答案 0 :(得分:1)

以下是一些代码,用于枚举解决方案命名空间中所有类型(类)的列表,您应该可以从中过滤到表单列表:

using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return assembly.GetTypes().Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)).ToArray();
}

用法:

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "YourNamespaceHere");
for (int i = 0; i < typelist.Length; i++)
{
    if (typelist[i].IsSubclassOf(typeof(Form))) {
           Console.WriteLine(typelist[i].Name); // Only forms will be written here
    }
}

追踪typelist数组。这将包含您所有解决方案的类型,您只需从中获取表单。