2010-08-16 9 views
1

dans mon application (http://tabbles.net) Je dois offrir une touche de raccourci "recherche globale" comme vous voyez dans google desktop: si vous appuyez sur CTRL + CTRL à tout moment (quel que soit quelle application est active et a le focus sur le clavier), une boîte de dialogue doit apparaître dans laquelle vous devez pouvoir taper un texte de recherche et appuyer sur Entrée.Steal focus pour mettre en œuvre la boîte de recherche système

Cette nécessite le vol de focus à partir de l'application active.

Jusqu'à présent, j'ai été en mesure d'installer un hook de clé globale et de l'utiliser pour détecter la combinaison de touches et afficher une boîte de dialogue. J'ai fait le dialogue au sommet, donc il apparaît toujours au-dessus de l'application active. Cependant, l'utilisateur ne peut rien saisir dans la boîte de dialogue sans d'abord cliquer dessus avec la souris, car je ne peux pas donner de focus à la zone de texte à l'intérieur de la boîte de dialogue. Donc l'utilisateur doit cliquer avec la souris avant de taper, ce qui est un fardeau.

Y at-il de toute façon contourner la prévention de vol de mise au point de Windows? Je vous remercie.

Répondre

1

J'ai été capable de le faire en utilisant RegisterHotKey au lieu d'un hook de clé globale.

Important: J'avais également besoin d'utiliser System.windows.input.Keybord.Focus (zone de texte) au lieu de simplement textbox.focus().

Questions connexes