2010-03-19 6 views
7

프로젝트에서 모든 양식의 목록을 가져오고 싶습니다. 양식을 실행하고 있습니다.VS2008 C# 프로젝트에서 양식 목록을 가져 오는 방법은 무엇입니까?

난 4 개 형태 1.Form1 2.Form2 3.Form3 4.Form4

을 가지고 프로젝트를 실행하고 그리고 난 어떤 형태로 직접 추가 방향에 대한 그들의 목록을 검색한다고 가정

+1

디자인 타임 또는 런타임에 검색 할 수 있습니까? –

+0

런타임 : :) Application.Openforms의 컬렉션을 알고 있지만 내 양식이 열려 있지 않으면 어떻게 전체 컬렉션의 목록을 얻을 수 있습니다 – Mobin

답변

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

+0

마지막 사건입니까? 라이브, 기존, 양식 객체를 원하거나 아직 존재하지 않을 수도있는 모든 가능한 유형을 원할 수도 없습니다. 원하는 경우 두 가지를 결합해야합니다. 네가 원하는 걸 정교하게 써 주겠니? 그리고 "네가 원한다고 생각합니다"라고 여러 항목을 열거했을 때 도움이되지 않는다면 원하는 것을 말하십시오. –

+0

OK 그러면 나는 폼의 객체 목록을 RUNTIME 및 프로젝트에 정의 된 모든 형식으로 정의한다고 말하고 싶습니다. 이것이 내 쿼리를 이해하는 데 도움이 되길 바랍니다. 그렇습니다. 내 의도를 알려주는 적절한 방법이 아니란 점을 알았습니다. lolz – Mobin

관련 문제