.NET Event для приложений теряет и приобретает фокус - PullRequest
3 голосов
/ 26 мая 2009

Есть ли простой способ определить, когда приложение .NET получает или теряет фокус?

Ответы [ 6 ]

7 голосов
/ 26 мая 2009

События, которые вы ищете: Form.Acactive и Form.Deacactive

2 голосов
/ 26 мая 2009

Мне было любопытно, как эта техника будет работать при различных условиях в приложении MDI. Оказывается, это не будет работать во всех ситуациях.

Если ваше приложение является приложением MDI, то основная форма MDI теряет / получает фокус, если немодальная форма в форме MDI имеет фокус, когда само приложение теряет / восстанавливает фокус (как отмечено в других ответах). Однако, если модальное диалоговое окно открыто (модально для самого приложения), основная форма MDI не теряет / не получает фокус (по крайней мере, активированные / деактивированные события, похоже, не срабатывают). Другими словами, если все, что вы обрабатываете, это события активации / деактивации MDI-формы, вы можете пропустить, когда приложение теряет / получает фокус, если модальная форма имеет фокус.

Таким образом, похоже, что для этого вам понадобится обрабатывать как активированные / деактивированные события формы MDI, так и события в любой форме, открытой модально (через ShowDialog).

1 голос
/ 26 мая 2009

Использование:

this.LostFocus

И

this.GotFocus

В самой родительской форме / окне

0 голосов
/ 26 мая 2009

Обработка событий Control.GotFocus и Control.LostFocus для главного окна.

0 голосов
/ 26 мая 2009

В winforms это Активировано

0 голосов
/ 26 мая 2009

Для WPF FocusChanged в окне. В Winforms должно быть подобное событие. Вы можете узнать это с помощью intellisense в Visual Studio.

Активирован / деактивирован кажется стандартным.

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