2009-05-26 6 views

Répondre

7

Les événements que vous recherchez sont Form.Activated et Form.Deactivated

+0

merci - c'était mon inclination, mais je ne savais pas si cela fonctionnerait, car l'application dispose d'une interface à onglets. Je vais vérifier. – subrama6

0

Pour WPF, FocusChanged sur la fenêtre. Il devrait y avoir un événement similaire dans Winforms. Vous pouvez trouver en utilisant l'intellisense sur Visual Studio.

Activé/Désactivé semble être standard cependant.

0

gérer les événements Control.GotFocus et Control.LostFocus pour la fenêtre principale.

1

Utilisation:

this.LostFocus 

Et:

this.GotFocus 

Sur la forme la plus-parent/fenêtre

2

J'étais curieux de savoir comment cette technique fonctionnerait dans les différentes conditions au sein de une application MDI. Il s'avère que cela ne fonctionnera pas dans toutes les situations. Si votre application est une application MDI, le formulaire MDI principal perdra/obtiendra le focus si un formulaire non modal dans le formulaire MDI est actif lorsque l'application elle-même perd/reprend le focus (comme indiqué dans les autres réponses). Cependant, si un dialogue modal est ouvert (modal à l'application elle-même), le formulaire MDI principal ne perd pas/gagne le focus (au moins les événements activés/désactivés ne semblent pas se déclencher). En d'autres termes, si tout ce que vous gérez est les événements d'activation/désactivation du formulaire MDI, vous risquez de manquer lorsque l'application perd/gagne le focus si une forme modale a le focus.

Ainsi, il semble que pour que cela fonctionne, vous devrez gérer à la fois les événements activés/désactivés de la forme MDI et aussi ces événements sur toute forme ouverte modalement (via ShowDialog).

+0

Vous pouvez également filtrer votre événement de désactivation en [détectant quelle application a le focus] [1] que vous pourriez mettre dans le gestionnaire Deactivate de votre fenêtre principale, les dialogues modaux devraient retourner le focus à la fermeture. [1] http://stackoverflow.com/questions/2183541/c-detecting-which-application-has-focus –

Questions connexes