Existe-t-il un moyen facile de détecter le moment où une application .NET obtient ou perd son focus?Événement .NET pour la perte et la mise au point de l'application
Répondre
Les événements que vous recherchez sont Form.Activated et Form.Deactivated
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.
En WinForms il est Activated
gérer les événements Control.GotFocus et Control.LostFocus pour la fenêtre principale.
Utilisation:
this.LostFocus
Et:
this.GotFocus
Sur la forme la plus-parent/fenêtre
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).
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 –
- 1. Mise au point de l'erreur .Net OracleClient
- 2. formes de mise au point
- 3. C# détecter l'application mise au point mise au point
- 4. Vérification de la mise au point d'un élément DOM
- 5. Réglage de la mise au point après animation Div
- 6. Mise au point dans ASP
- 7. Figure Out si la fenêtre est mise au point
- 8. Pocket IE: la mise au point est parfois perdue
- 9. comment définir la mise au point dans l'index requis sur la zone de texte pour l'opéra
- 10. Mise au point du champ de texte
- 11. Mesure de mise au point Javascript
- 12. style de mise au point de contrôle
- 13. Android: Récupérer la mise au point en utilisant SurfaceView
- 14. Mise au point de Windows Vista Problème
- 15. Mise au point de OutputCache dans ASP.Net
- 16. jQuery ScrollBar - Pas de mise au point?
- 17. cellule de mise au point flex datagrid
- 18. Réglage de la mise au point à l'aide des flèches gauche et droite (HTML + JS)
- 19. C# Roulette de la souris de la souris ListView sans mise au point
- 20. La boîte de dialogue modale empêche le retour de la mise au point après l'impression
- 21. Mise au point à l'échelle du système
- 22. Mise au point par programmation d'un hippo.CanvasEntry?
- 23. Capture des frappes sans mise au point
- 24. Mise au point Interwoven Worksite Web Services
- 25. Touchez et faites la mise au point sur 3GS avec showsCameraControls = NO
- 26. Spécification Où mise au point dans Textarea
- 27. Comment activer un événement sur le flou ou sur appuyer sur retour pendant la mise au point?
- 28. Recherche de perte de paquets et de trace dans .NET
- 29. Bibliothèque pour la conversion d'image sans perte
- 30. L'élément Treeview perd la sélection lorsque la mise au point est perdue
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