J'ai un composant en conflit avec un autre composant qui gère certaines traductions internes. Ce qui se passe, c'est que les composants de logique métier sont exécutés, puis le système de traduction s'exécute, qui récupère les textes présents dans le formulaire et tente de les traduire. Le problème est que le texte contient maintenant des éléments tels que des nombres, des dates, du texte lié à la base de données, etc. mais avant l'exécution de la logique métier, ces contrôles étaient vides ou contenaient du texte factice préparé pour la traduction. Je me demande comment je peux avoir un composant que je dépose sur un formulaire exécuter son code à un moment précis de la vie du formulaire. Par exemple, si je supprime le code incriminé du composant de logique applicative, afin qu'il ne fasse rien lors de la construction, puis la traduction fonctionne, et si j'appelle ensuite la méthode que j'ai déplacé ce code à partir de Form_Load, que aussi fonctionne bien.Exécuter du code de composant juste avant ou après l'événement Form_Load dans .NET WinForms?
Donc, je me demande, est-il un moyen pour moi, d'un composant (ie descendant de Component, pas un contrôle visuel), d'exécuter du code juste avant ou après Form_Load, ou au moins après tous les autres composants et les contrôles ont été mis en place?
Il ne semble pas y avoir de lien depuis l'intérieur du composant vers le formulaire, donc pour moi, accrocher dans l'événement Load ne semble pas possible non plus.
Ou est-ce que j'aboie le mauvais arbre?
Nous avons déjà beaucoup de formes, j'espérais éviter de revenir et l'ajout de code à tous pour résoudre ce problème, mais il semble la manière la plus correcte pour résoudre ce problème est en le faisant. Je vais regarder dans le code que vous avez posté. –
Le code que vous avez posté a résolu les problèmes. Pour les formulaires existants, je dois revenir en arrière et définir manuellement la propriété Host, et avec le code que vous avez posté, les nouveaux formulaires seront corrigés automatiquement. Merci! –