2010-03-19 87 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

相關問題