2010-01-29 4 views
2

J'ai une application WinForms que « docks » à la barre des tâches je voudrais cacher automatiquement le formulaire et le faire apparaître que lorsque la souris passe près de/sur la formeC# Autohide forme

des suggestions?

+1

ma suggestion: utiliser wpf au lieu de winforms. rend des choses comme ce gâteau. ;) –

+0

Je n'ai aucune idée de comment vous ancrez quelque chose et ensuite le cacher. Utilisez un NotifyIcon, c'est l'interface utilisateur standard pour les applications qui "s'exécutent dans le bac". Il nécessite toutefois un clic sur l'icône pour lancer une action. Le vol stationnaire ne peut pas être fait pour fonctionner. Pas de problème, les utilisateurs ont l'habitude de cliquer dessus. –

+0

en attente de wpf à maturité avec 4.0 d'abord! – Kumar

Répondre

0

Installez un crochet global sur l'événement de déplacement de la souris et vérifiez s'il se trouve dans les limites du formulaire. Devrait fonctionner même avec le formulaire caché. Si ce n'est pas simplement stocker l'emplacement sous forme de rectangle et vérifier par rapport à cela.

code pour une mise en œuvre globale simple et pratique crochet peut être trouvé à l'adresse:

http://www.codeproject.com/KB/cs/globalhook.aspx

Je l'ai utilisé cette méthode pour créer la fonctionnalité « hotspot » à un bureau de l'utilisateur.

0

Je ne suis pas sûr qu'il répond exactement à votre question, mais il est un échantillon de ce sur CodePlex ...

http://remoteaccessmonitor.codeplex.com/

Parcourir le code source et consultez le fichier MinimizeToTray.cs - il a des exemples de messages pop-up lorsqu'il se cache et je pense que son comportement par défaut est de réapparaître sur clic (bien que j'imagine que cela pourrait être changé).

+0

scénario tout à fait différent, j'ai peur – Kumar

0

Vous pourriez.

  • Interrogez les coordonnées de la souris jusqu'à ce qu'elle se trouve dans un certain rayon de votre application.
  • Placez un formulaire invisible, toujours visible, au-dessus de l'application ancrée et déclenchez un événement MouseEnter.

C'est tout ce que je peux vraiment penser. Non plus.

+0

hmm, je préfère éviter les sondages, le positionnement d'une forme invisible pourrait fonctionner, mais ne serait-il pas gênant de cliquer sur l'immobilier ci-dessous aussi bien? – Kumar