2009-07-19 8 views
0

Je crée une application de gestionnaire de presse-papiers simple. Il surveille le contenu d'un presse-papiers. Quand un changement se produit (par la boucle de message de victoire api) il déclenche une méthode pour capturer le contenu actuel du presse-papiers et crée un nouvel objet appelé clipboarditem. Ensuite, il construit un ContextMeuStrip qui se compose de plusieurs clipboard items créés précédemment. Le menu des éléments est accessible par un raccourci clavier. Il affiche ce menu sur une certaine position de l'écran itemsMenu.Show (caretPosition) ;, avec .Focus(), je veux le faire disparaître après qu'il perd la mise au point (par exemple en cliquant quelque part ailleurs sur l'écran ou passer des applications par alt-tab). J'ai trouvé un événement OnLoseFocus mais je ne pense pas que cela fonctionne correctement car le menu ne s'affichera même pas.Afficher/Masquer ContextMenuStrip en dehors du formulaire

Comment faire pour que ContextMenuStrip disparaisse après avoir perdu le focus et comment empêcher l'affichage de ContextMenuStrip dans taskabr?

Désolé pour mes compétences linguistiques :)

Répondre

0

D'un look très rapide aux événements qui ContextMenuStrip contient, avez-vous essayé l'événement « MouseCaptureChanged »? Il peut vous aider avec le problème de perdre le focus.

Pour l'affichage dans le problème de barre des tâches, avez-vous défini "ShowInTaskbar" sur false sur le formulaire que vous avez votre ContextMenuStrip (si vous l'avez sur un formulaire)?

Questions connexes