Alguien me dio este código que funciona muy bien. Pero realmente me gustaría entender qué está sucediendo dentro de él. ¿Podría alguien explicar por favor? ¿Cuál es el significado de cada parte del código? El código está dentro de un control personalizado que tiene dos etiquetas dentro de un panel.Explicar el código para el evento personalizado en el control de usuario
También he visto algunos eventos de control personalizado que usan la sintaxis de agregar/quitar, ¿para qué sirve eso? ¿Cuál es la diferencia con lo que está sucediendo aquí?
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public event EventHandler MyCustomClickEvent;
protected virtual void OnMyCustomClickEvent(EventArgs e)
{
// Here, you use the "this" so it's your own control. You can also
// customize the EventArgs to pass something you'd like.
if (MyCustomClickEvent != null)
MyCustomClickEvent(this, e);
}
private void label1_Click(object sender, EventArgs e)
{
OnMyCustomClickEvent(EventArgs.Empty);
}
}
Gracias Pieter! en realidad, es el código que me diste, simplemente tratando de comprender mejor – VerizonW
¿Por qué el método está protegido de forma virtual? – VerizonW
Bueno, eso se debe principalmente a la convención, como es la forma en que se definen los parámetros del método. Siempre verá (casi) que estos métodos se definen como virtuales protegidos porque esto le da a la clase heredera la opción de anular el método en lugar de tener que registrar el evento. Al crear una clase secundaria, se prefiere sobrescribir el método en lugar de agregar eventos en el constructor. –