Déclarer un event dans un control personnel n'a rien de bien compliqué, cependant certaines pratiques sont à respecter afin que notre ami le compilateur n'en fasse pas trop à sa guise.
Je m'explique : lors de la compilation d'un projet contenant des event custom, si aucun delegate n'est déclaré explicitement, notre application se retrouve avec autant de delegate que de déclarations d'events (même si ceux-ci ont la même signature).
Par exemple le code suivant produira trois delegate distincts lors de la compilation du projet :
Public Event MonEvent1(ByVal e As String) Public Event MonEvent2(ByVal e As String) Public Event MonEvent1(ByVal e As String)
Pour éviter cela, déclarons notre delegate (dans notre control ou hors de celui-ci si notre delegate doit servir à d'autres controls)
' Le delegate Public Delegate Sub MonEventDelegate(ByVal e As String) ' Les events Public Event MonEvent1 As MonEventDelegate Public Event MonEvent2 As MonEventDelegate Public Event MonEvent3 As MonEventDelegate
Donc rien de très compliqué en soit, mais un gain en clarté et un allégement des ressources utiles à notre application.
Même si ce post parle ici de VB, il faut signaler que ce qui y est dit est aussi valable pour C#.