如何在我的应用程序中获取所有表单

时间:2015-10-11 13:51:07

标签: c# .net winforms reflection

我需要在c#应用程序中获取所有表单并将每个表单的.Text参数添加到组合框控件中,我需要在一个方法中执行所有操作(void)

mycode的:

System.Reflection.Assembly[] assembly = AppDomain.CurrentDomain.GetAssemblies();
foreach(System.Reflection.Assembly asem in assembly)
{
    foreach(Type t in asem.GetTypes())
    {   
        ComboBox1.Items.Add(t.Name);
        //here i need to get the .Text param
        //where Name is the Form name
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用Application.OpenForms property获取所有当前打开表单的列表。

无法迭代所有类型,因为你没有得到正在运行的实例,只有类型。如果您没有类的实例,则该类在内存中不存在。

(仅仅因为实例化一个类并不意味着它具有视觉外观,即使该类派生自Form)。