Voici la reponse a ma propre question que j'ai soumise il y peu dans le forum.
Un collegue de travail me l'a donnée, et je vais donc en faire profiter tout le monde.
Supposons que vous avez un project avec des centaines de forms (certaines childs d'autres modales), et que vous desirez capturer une event combinaison du clavier dans chaque form, pour executer une sub qu'on va appeler 'Set_Name_Form'.
Que faire?
Une premiere solution consiste a ecrire le code dans chaque form. Dans les projects volumineux, solution vite rasoir!
Une deuxieme solution consiste a utiliser un timer et une classe depuis la MDI de la maniere ci-dessous:
Source / Exemple :
Private cl As New clEventGeneral
Private Sub MDIForm_Load()
Set cl.TheTimer = Timer1
End Sub
'C'est tout!!!
Conclusion :
A chaque interval de temps, le timer dans la classe va referencier la form active par Screen.ActiveForm
Si dans la form active l'utilisateur appuie sur une touche par exemple Ctrl+Q,
la form definie dans la classe va capturer l'event et lancer la sub.
Le principal avantage de cette solution est qu'il n'implique pas d'ecrire du code dans chaque form. Ce qui rend donc l'actualisation tres rapide (comme changer la combinaison de touche par ex.)!
La classe bien comme un exemple pour la tester sont dans le zip.
Je n'aime pas utiliser les timer dans mes projects, mais je n'ai pas trouve mieux.
Si qq a une meilleur idée...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.