Question

Pour un contrôle WinForms, je voudrais ajouter un gestionnaire après que le conteneur ait initialisé le contrôle (ou mieux, après que le parent ait initialisé tous les contrôles contenus).

Raison: le contrôle personnalisé a une option pour déclencher une action automatiquement. Il devrait également se déclencher lorsque cette option est activée pour la première fois.

Cependant, à ce stade, d'autres propriétés (telles que les gestionnaires d'événements) ne sont pas encore correctement câblées et l'effet n'est donc pas comme prévu.

Est-ce possible?

[modifier]

Je comprends que cela semble "un peu inhabituel", je tiens donc à préciser:

Il est destiné à ce composant : en gros, ajouter une option à "Créer automatiquement un nouveau document".

Je peux créer le DocumentInfo lui-même pendant l'initialisation ou lorsque la propriété est affectée pendant l'initialisation. Cependant, à ce stade, je devrais également déclencher l'événement pour indiquer (généralement le formulaire parent) qu'il doit mettre à jour l'interface utilisateur. Il se peut que l'événement ne soit pas encore câblé ou que d'autres contrôles ne soient pas encore initialisés. C'est pourquoi j'aimerais retarder l'événement jusqu'à ce que le formulaire parent soit complètement initialisé.

Était-ce utile?

La solution

La seule chose que je sache qui ferait cela, directement à partir du contrôle, serait de remplacer OnVisibleChanged et de gérer votre action la première fois que le contrôle est affiché.

Cependant, je repenserais la nécessité de cela. Cela provoquera un comportement différent de votre contrôle par rapport aux contrôles Windows Forms standard. Essayer d’attacher votre comportement à un événement non standard me semble être un cauchemar de maintenance et d’utilisabilité ...

Autres conseils

Avez-vous essayé de vous connecter à l'événement Load du formulaire et d'y effectuer le travail? (notez que cela se déclenche chaque fois que vous montrez le formulaire ...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top