Question

J'ai créé un contrôle WinForms qui hérite de System.Windows.Forms.UserControl ... J'ai des événements personnalisés sur le contrôle que j'aimerais que le consommateur de mon contrôle puisse voir. Je ne parviens pas à afficher mes événements dans l'onglet Evénements de la fenêtre Propriétés pendant la conception. Cela signifie que le seul moyen d'affecter les événements est d'écrire par programme

myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);

cela me convient, mais si quelqu'un d'autre utilise mon UserControl, il ne saura pas que ces événements existent (à moins qu'ils lisent la documentation doco ... oui, c'est vrai). Je sais que l'événement utilisera Intellisense, mais ce serait bien s'il pouvait également s'afficher dans la fenêtre des propriétés.

Était-ce utile?

La solution

Assurez-vous que vos événements sont exposés en tant que public. Par exemple ...

[Browsable(true)]
public event EventHandler MyCustomEvent;

Autres conseils

Une solution utilisant delegate. Par exemple, j'ai utilisé pour un ListView personnalisé qui gère l'événement ajouté à l'élément: Déclarez votre délégué:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

puis déclarez l'événement qui utilise le délégué:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

Remarque: ItemEventArgs est un EventArgs personnalisé

L’espoir peut vous aider, cela me convient

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