Sur mon formulaire principal, il y a une autre fenêtre (flottante). Cette fenêtre flottante fonctionne en quelque sorte comme une fenêtre contextuelle dans la mesure où elle se ferme lorsque l'utilisateur clique ailleurs à l'extérieur de cette fenêtre. Ceci est géré par l'événement Deactivate. Mais ce que je veux faire est, si l'utilisateur clique sur un contrôle différent (disons un bouton), je veux à la fois fermer cette fenêtre flottante et ensuite activer ce bouton en un seul clic. Actuellement, l'utilisateur doit cliquer deux fois (un pour désactiver la fenêtre et une fois de plus pour activer le bouton désiré). Existe-t-il un moyen de le faire en un seul clic?Comment faire deux choses en un clic dans Windows Form
Répondre
J'avais une solution légèrement hacky. Dans votre événement Deactivate, envoyez un autre événement personnalisé à votre formulaire principal. Ensuite, lorsque votre formulaire principal gère l'événement personnalisé, énumérez-le via votre contrôle (this.Controls) et localisez le contrôle sous la souris en vérifiant tout leur lien puis appelez Focus(). Vous pourriez avoir besoin de trier par celui avec la plus petite surface, ou vous pouvez avoir une liste séparée de contrôle "focus-able" comme bouton juste à cet effet. Une autre méthode consiste à basculer le focus sur votre formulaire principal immédiatement après OnMouseLeave de la fenêtre flottante ou sur OnMouseHover de votre fenêtre principale, tout en conservant les fenêtres flottantes en haut, sans aucun focus. Gérez la souris globale de votre formulaire principal et fermez la fenêtre flottante d'ici là.
Ce ne sont que des théories, non testées.
foreach(Control c in parentForm.Controls)
{
c.Click += delegate(object sender, EventArgs e)
{
if(floatyWindow != null && floatyWindow.IsFloating)
{
floatyWindow.Close();
}
};
}
Puis ajoutez vos gestionnaires comme d'habitude. Ce gestionnaire supplémentaire peut fermer la fenêtre flottante. Assurez-vous que la fenêtre floaty n'est pas une boîte de dialogue car elle ne permet pas de cliquer sur les contrôles de votre fiche parent.
J'ai eu un problème comme celui-ci une fois aussi, quand un client voulait des fenêtres "flottantes" partout dans l'application. J'ai utilisé utilisé une approche similaire à celle décrite dans cet article:
http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/article.asp
Exemple de codeici:
En prolongeant ce un peu que nous avons créé les fenêtres « vaporeux » similaires à ceux que VS utilise lorsque vous obtenez une erreur d'exécution pendant le débogage du code. À tout le moins, la lecture du code peut vous donner un aperçu, cependant, la réponse querelleuse peut être la solution la plus simple.
http://tinyurl.com –
- 1. Implémenter l'orthographe Word dans l'application Windows Form
- 2. Windows Form inheritance
- 3. Comment faire .unclick = unbind (clic dans jquery?
- 4. Windows Form Components Access
- 5. Faire PHPUnit ignorer les choses?
- 6. Windows Form Design-Erreur
- 7. Deux requête d'insertion ... dans le même clic
- 8. Comment stocker des choses dans un ensemble en PHP?
- 9. Formulaires en html - Comment faire pour que le formulaire fasse 2 choses?
- 10. Comment afficher les GIF animés sur un Windows Form (C#)
- 11. C# Windows Form. Console .Net et DOS
- 12. C# Windows Form disparaît soudainement
- 13. Suspend Redraw de Windows Form
- 14. Utilisation d'OpenGL sous Windows Form Application en Visual C++
- 15. Comment faire un clic sur un objet d'affichage dans Flash avec AS3?
- 16. Comment faire un contrôle Windows Forms en lecture seule?
- 17. comment faire un clic ou un double clic sur un mot sur une page Web pour déclencher un gestionnaire d'événement?
- 18. Windows Form avec Table de chaînes
- 19. Comment puis-je faire un clic droit dans un menu déroulant WPF sans perdre le focus?
- 20. Comment créer un fichier XML à partir du contrôle Datagridview dans l'application Windows Form?
- 21. Comment automatiser un clic droit dans VBScript?
- 22. Comment vérifier l'élément CheckListBox en un seul clic?
- 23. Classe Designer personnalisée pour un problème .NET Windows Form
- 24. Comment configurer un contrôleur de vue en tant que délégué pour deux choses (telles que le LocationManager et l'Accéléromètre)?
- 25. Arrêter le double clic après un seul clic
- 26. Comment garder un compte "choses faites" dans un algorithme récursif en Java?
- 27. RIght-clic dans GWT?
- 28. SubSonic et app.config sous Windows Form
- 29. Comment faire pour installer Satchmo dans Windows?
- 30. Java: ignorer un simple clic sur un double clic?
Vous étiez un poil plus rapide que moi ... bonne solution – JoshBerke