Pregunta

He creado un control WinForms que se hereda de System.Windows.Forms.UserControl ... Tengo algunos eventos personalizados en el control que me gustaría que el consumidor de mi control pueda ver. No puedo conseguir que mis eventos se muestren en la pestaña Eventos de la ventana Propiedades durante el tiempo de diseño. Esto significa que la única forma de asignar los eventos es escribir mediante programación

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

Supongo que esto está bien para mí, pero cuando alguien más use mi UserControl no sabrá que estos eventos existen (a menos que lean la biblioteca doco ... sí, claro). Sé que el evento se mostrará utilizando Intellisense, pero sería genial si también se pudiera mostrar en la ventana de propiedades.

¿Fue útil?

Solución

Asegúrate de que tus eventos estén expuestos como públicos. Por ejemplo ...

[Browsable(true)]
public event EventHandler MyCustomEvent;

Otros consejos

Una solución utilizando delegado. Por ejemplo, utilicé para un ListView personalizado que controla el evento de elemento agregado: Declara tu delegado:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

luego declare el evento que utiliza el delegado:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

Nota: ItemEventArgs es un EventArgs personalizado

La esperanza te puede ayudar, funciona bien para mí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top