Объяснение кода для настраиваемого события в пользовательском элементе управления

Кто-то дал мне этот код, который отлично работает. Но мне очень хотелось бы понять, что внутри него происходит. Может кто-нибудь объяснить, пожалуйста? В чем смысл каждой части кода? Код находится внутри настраиваемого элемента управления, который имеет две метки внутри панели.

Также я видел несколько событий настраиваемых элементов управления, которые используют синтаксис добавления / удаления, для чего это нужно? В чем разница с тем, что здесь происходит?

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);
    }
}
7
задан GEOCHET 26 October 2014 в 15:24
поделиться