begin process at 2010 02 10 06:06:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Détecter la création d'un formulaire dans l'application


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Détecter la création d'un formulaire dans l'application

jeudi 24 juillet 2008 à 16:07:17 | Détecter la création d'un formulaire dans l'application

divadav

Membre Club
Bonjour à tous !

Je cherche à détecter l'ajout d'un OwnedForm dans la collection OwnedForms d'un formulaire. Quelqu'un aurait une idée ?

Je m'explique : je suis en train de créer une sorte de robot de test, ou d'enregistreur de macros, pour mon application.
Pour cela, j'ai donc ajouté un projet "TestingBot" à ma solution. Ce projet permet d'ajouter des handlers sur tous les contrôles de mon application en partant de ma fenêtre principale.
Ainsi, pour lancer l'enregistrement des actions utilisateur, je parcours toute le liste Controls du formulaire, et pour chaque contrôle :
  • J'ajoute un handler sur KeyPress
  • J'ajoute un handler sur Click
  • J'ajoute un handler sur DoubleClick
  • J'ajoute un handler sur ControlAdded (pour ajouter les même handlers sur tout contrôle créé au runtime)
  • J'ajoute un handler sur ControlRemoved (idem, pour supprimer les handlers)
  • Et enfin je parcours sa propre liste Controls pour y faire la même chose (fonction récursive)

Tout marche bien, et quand je veux arrêter l'enregistrement, je fait la même chose en supprimant tous les handlers.
Ainsi, je détecte bien les actions souris/clavier de l'utilisateur sur mon formulaire principal, ainsi que tous ses contrôles, ses MdiChild, etc...

Le soucis est que les MdiChild peuvent quant à eux ouvrir un fomulaire (en précisant toujours owner = mainform) qui s'ajoutent donc à la collection OwnedForms de mon formulaire principale. Et là, c'est le drame ! Il n'y a pas d'événement qui corresponde à ça ! Je ne peux donc pas tracer les actions utilisateur sur ces nouveaux formulaires !

D'où ma question : comment détecter l'ajout d'un formulaire dans la collection OwnedForms d'un formulaire ?
J'ai également pensé à la collection OpenForms de l'objet Application, mais le soucis est le même : il n'y a pas d'événement correspondant...
Une troisième piste serait d'utiliser la fonction Application.AddMessageFilter pour "voir" les événements de création de formulaire propre à mon application... Mais là, je sèche un peu, je ne vois pas trop comment faire...

Si quelqu'un a une idée, ou même un début de piste pour régler ce problème, je suis ouvert à toute suggestion ou explication !!




Divad
Techniques de Web Design, Traductions d'articles sur le Web Design, Astuces .Net

vendredi 25 juillet 2008 à 10:04:42 | Re : Détecter la création d'un formulaire dans l'application

divadav

Membre Club
Bah alors, personne n'a d'idée ?

Bon, en tout cas, la piste des IMessageFilter est à abandonner, les messages WM_CREATE ne sont pas concernés par cette fonction...



Divad
Techniques de Web Design, Traductions d'articles sur le Web Design, Astuces .Net


Cette discussion est classée dans : application, formulaire, détecter, handler, ajoute


Répondre à ce message

Sujets en rapport avec ce message

Confirmation de fermeture d'application [ par thomas_cosme ] TomimiJe cherche a effectuer une confirmation de fermeture de mon application avant que la fenetre principale ne se ferme, je bosse sur pocket pc.Pour Détecter clique en dehors de mon application [ par Nikoui ] Est il possible de récupérer les évènements de clique en dehors de mon application ? (et si oui, comment ? ). Par exemple depuis une application qui a Détecter quand la fenêtre est minimisée [ par yes ] Bonjour,Je voudrais que mon application puisse savoir quand elle est minimisé.Lorsque l'utilisateur click sur le bouton dans la barre de tache c bon m détecter si un form est ouvert [ par titi66 ] bonjourdans une appli, j'ouvre des formulaires (non modaux)  contenant des images. j'aimerai ne pas ouvrir 2 fois le même formulaire.Comment détecter un programme dans un autre programme [ par catamenia ] Bonjour,J'aimerais depuis un formulaire lancer un programme externe a l'application et que la fenêtre de l'application externe soit dans un panel du f Echange de données entre deux formulaires [ par fayerne ] Bonsoir à toutes et à tous,voila j'ai un petit souci avec un projet; j'ai une application qui utilise plusieurs formulaires windows et je dois faire t Problème d'affichage de mon formulaire [ par julien_eymard ] Bonjour à tous,mon application n'a pas le comportement que je voudrais. Mon formulaire principal contient 1 panel.Je lance mon application. Je vais da Détecter le lancement d'une application externe [ par ZMJUVENTINO ] SalutJe voudrais  savoir comment placer mon application dans la barre des tâches et détecter chaque fenêtre qui s'ouvre sur l'écran et en extraire le Clic formulaire MDI [ par pactoopac ] Bonjour,Dans un formulaire MDI, j'ai un panel à gauche qui s'affiche et se masque en fonction de mes besoins.Je voudrais le cacher quand je clique ail application struts [ par deutch1 ] bonjour à tous    j'ai une application web développé avec struts, j'utilise une formulaire une classe actionform  et une classe action et applet ,les


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales