2010-03-19 54 views
7

我想获取我正在运行表单的项目中的所有表单的列表。如何获取VS2008 C#项目中的表单列表?

假如我是运行的有4种形式 1.Form1 2.Form2 3.Form3 4.Form4

一个项目,我想找回他们的进一步方向,其形式直接列表到

+1

您想在设计时或运行时检索它们吗? – 2010-03-19 12:02:58

+0

运行时:)在知道Application.Openforms的集合,但如果我的表单不打开,那么我怎么能得到整个集合的列表 – Mobin 2010-03-19 12:08:41

回答

11

你的意思是:

  1. 设计时?
  2. 运行时间?

如果运行时,你的意思是:

  1. 在项目中定义的所有形式的?
  2. 所有打开的窗体

如果在设计时,那我就不知道了。

如果您的意思是在运行时,并且您希望声明所有表单,则需要采取反射措施。遍历你的程序集中的所有类型,找到从Form类继承的所有类型。

像这样的事:

Type formType = typeof(Form); 
foreach (Type type in Assembly.GetExecutingAssembly().GetTypes()) 
    if (formType.IsAssignableFrom(type)) 
    { 
     // type is a Form 
    } 

如果你的意思是在运行时,你希望所有打开的窗体,您可以使用Application.OpenForms

+0

是的,我想我想那。但是我在哪里得到满足“如果”条件,如果你可以请 – Mobin 2010-03-19 12:15:55

+0

你的意思是最后一种情况?你不能,那是关键,要么你想要现存的,现有的表单对象,要么你想要所有可能的类型,这些类型可能存在也可能不存在。如果你想要两者,你需要把两者结合起来。你能否详细说明你想要的?而“我想我想要那样”,当我列出了多件事情并不能帮助我,所以说*你想要什么。 – 2010-03-22 09:56:12

+0

好吧,然后我会说我想在RUNTIME和项目中定义的所有形式的对象列表希望这可以帮助你了解我的查询,是的,我得到的观点是,这不是一个正确的方式来告诉我的意图lolz – Mobin 2010-03-29 21:51:52

相关问题