Есть ли какой-то статический класс, который содержит информацию об окне моего приложения в WinForms? - PullRequest
0 голосов
/ 24 декабря 2010

Есть ли простой способ в приложении winforms получить доступ к коллекции открытых форм, которые находятся сверху, по порядку их открытия и т. Д .?

Я бы хотел сделать его статическим классом, чтобы я мог вызывать его в любом месте моего кода без необходимости передавать объекты.

В противном случае мне придется, так сказать, создать свой собственный "оконный менеджер".

1 Ответ

1 голос
/ 24 декабря 2010

Вы можете получить коллекцию, содержащую все формы, которые в данный момент открыты в вашем приложении, используя свойство Application.OpenForms . Это действительно статическое свойство, поэтому оно доступно везде.

Однако я не уверен, что это соответствует вашим требованиям по указанию порядка, в котором были открыты формы. Вам придется самостоятельно отслеживать эту информацию.

Обратите внимание, что коллекция, возвращаемая OpenForms, также не отслеживает, какой поток открыл каждую форму. Если вы хотите получить доступ к элементам формы, вам следует сначала проверить ее InvokeRequired свойство , чтобы предотвратить получение InvalidOperationException исключения.

...