2011-06-22 3 views
0

Mon application C# fonctionne bien et reste sur le dessus à chaque fois qu'on lui demande. Ce que je fais face et que je veux est:Comment activer le formulaire lorsque vous cliquez n'importe où sur le formulaire?

Supposons que mon application est ouverte et qu'une autre application (par exemple Bloc-notes) est également ouverte en chevauchant à moitié la fenêtre de mon application. Lorsque nous cliquons n'importe où sur le Bloc-notes, il est activé. Alors qu'avec mon application, je dois cliquer sur la barre supérieure de la fenêtre pour la rendre active. Pourquoi ça? Je souhaite que mon application soit active et qu'elle s'affiche lorsque l'utilisateur clique n'importe où sur le formulaire et pas seulement sur la barre supérieure.

De quoi ai-je besoin pour définir ou mettre en œuvre pour accomplir ceci?

+1

Montrez votre code. – Reniuz

+0

Je n'ai pas ce problème. Créez un nouveau projet simple et comparez avec l'application vôtre. Ou donnez-nous plus de détails – Saint

+0

J'ai créé un autre projet où il n'y a rien dans la forme et essayé la même situation. Et en cliquant n'importe où dans ce formulaire, il vient à l'avant. Quels détails avez-vous besoin de dire, partageront - je ne comprends tout simplement pas ce qu'il faut mettre ici car l'application est énorme. Mais affichera tous les détails dont vous avez besoin - donnez-moi juste une idée. – Tvd

Répondre

0

Le problème était avec overridding WndProc. Une déclaration inutile a été retirée et les choses ont été résolues. Merci à vous tous pour vos efforts.

0

Rien, si vous cliquez n'importe où sur une fenêtre, elle obtient le focus et devient la fenêtre la plus haute, sauf si une autre fenêtre est 'Toujours visible'.

+0

Explorateur Windows & mon application est ouverte et visible, mais Win Explorer chevauche la moitié de l'écran de mon application. Win Exp a le focus. Je clique sur mon formulaire d'application (au milieu), le focus de win exp est perdu. En cliquant sur les composants TAB ne sont pas concentrés dans mon application (donc je n'ai pas le focus je crois). Lorsque je clique sur la barre de titre de mon application, celle-ci arrive en tête et est entièrement focalisée. Maintenant, quand je clique sur mon application (au milieu du formulaire où aucun composant n'est placé) le focus de win exp est perdu, mais le mien n'est pas complètement activé aussi. Comment puis-je le faire activer et le mettre en avant comme en appuyant sur la barre de titre, il arrive. – Tvd

+0

Hmm, ce qui précède est le scénario en cliquant sur l'endroit où il n'y a pas de composants. Mais si je clique sur mes composants de l'application comme image, étiquette, boîte, etc, alors il agit correctement comme en appuyant sur la barre de titre. Mais en cliquant à l'endroit où il n'y a pas de composants, il réagit différemment. Comment gérer ces emplacements également où ils ne sont aucun componets et l'utilisateur clique là et l'application vient au-dessus? – Tvd

+0

Soit vous avez écrit du code pour l'arrêter explicitement au début de l'écran, soit vous utilisez un composant ou une bibliothèque qui le fait, ou il y a un bogue dans le composant ou la bibliothèque. Windows ne se comporte pas comme vous le décrivez. –

1

Essayez de le faire, sur Form1_MousClick événement a mis ce code

bool top = this.TopMost; 
this.TopMost = true; 
this.TopMost = top; 
+0

TopMost est défini par défaut uniquement, c'est-à-dire False. J'ai ajouté l'événement MouseClick et ajouté le code ci-dessus "this.TopMost = True;" N'a pas fonctionné. Essayé avec "this.BringToFront()". Ajouté un MessageBox aussi, mais cela n'est jamais montré seulement - Donc MouseClick n'est pas viré ou Pris !! Hmmm. – Tvd

+0

Essayez de cacher le formulaire et montrez-le à nouveau, ou réduisez-le et maximisez-le. – Burimi

+0

N'écrivez jamais ce code. –

Questions connexes