2016-09-07 3 views
3

Я начал работать над существующим решением, которое имеет очень большое количество Winforms. Есть ли быстрый способ найти форму времени разработки в Visual Studio Solution Explorer при запуске приложения?Найти активный winform в explorer explorer

Обратите внимание: debug/break поможет мне найти модальные формы (диалоги). Мне также интересно найти немощные winforms. Я не считаю, вспашки через меню время проектирования и события, как быстрый способ ..

+0

Что вы подразумеваете под «формой времени разработки»? –

+0

Я думаю, что он означает форму, которая теперь активна во время выполнения, как найти эту форму в explorer explorer в vs – GuidoG

+1

Отладчик может только показать вам, какой код в настоящее время работает. Что, если вы сделали это правильно, это * не * любой код в активном окне. Нормальное состояние UI-класса - терпеливо ждать, пока не произойдет что-то интересное. Как событие Click. Так что нет, это невозможно. Текст, отображаемый в заголовке окна, лучше всего подходит для поиска соответствующего класса Form. –

ответ

1

Вы также могли бы сделать пункт меню отладки на вас основную форму и поставить в нем:

string test = string.Empty; 
foreach (Form item in Application.OpenForms) 
{ 
    test += item.GetType().ToString() + Environment.NewLine; 
} 
MessageBox.Show(test); 

Это даст вам список openforms так же, как Маркус G предложил, но без необходимости создания формы для это.

Также обратите внимание на это:

https://msdn.microsoft.com/en-us/library/system.windows.forms.form.activeform(v=vs.110).aspx

Это объясняет, как вы можете определить активную форму, но, как обычно, Microsoft сделала вещи немного сложные, имея 2 метода, один для МДИ формы и один для none mdi формы

1

Я надеюсь, что это то, что вы хотите:

С Application.OpenForms (click)

Вы получите список всех открытых форм, принадлежащих вам проекту. Затем вы можете легко узнать форму в Проводнике.

+0

Как использовать это при запуске приложения? Это то, что спросил ОП. – GuidoG

+0

О, тогда он может создать таймер (или событие), который обновляется каждую секунду в другой форме, чтобы увидеть, какие формы запущены. Я не вижу проблемы ... @OP Пожалуйста, ответьте –

+0

. Я бы предпочел не программировать вообще, чтобы узнать активную форму, но похоже, что это невозможно. Я подожду немного, чтобы увидеть, есть ли другие решения. –

Смежные вопросы