Как получить список форм в проекте VS2008 C #? - PullRequest
7 голосов
/ 19 марта 2010

Я хочу получить список всех форм в проекте, из которого я запускаю форму.

Предположим, я запускаю проект, который имеет 4 формы 1.Form1 2.Form2 3.Form3 4.Form4

и я хочу получить их список для дальнейшего указания, какую форму направить на

1 Ответ

11 голосов
/ 19 марта 2010

Вы имеете в виду:

  1. Дизайн-время?
  2. Run-время

Если во время выполнения вы имеете в виду:

  1. Все ли формы определены в проекте?
  2. Все открытые формы

Если во время разработки, то я не знаю.

Если вы имеете в виду во время выполнения и хотите, чтобы все формы были объявлены, вам нужно прибегнуть к рефлексии. Переберите все типы в вашей сборке (-ях) и найдите все типы, унаследованные от класса Form.

Примерно так:

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

Если вы имеете в виду во время выполнения и вам нужны все открытые формы, вы можете использовать Application.OpenForms .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...