Ключевое слово события в c # изменяет объявление делегата. Он предотвращает прямое назначение делегату (вы можете использовать только + = и - = для события) и предотвращает вызов делегата извне класса.
Чтобы вы могли изменить свой код так:
public class CustomGUIElement
{
...
public MouseEventHandler Click;
// etc, and so forth.
...
}
Затем вы можете вызвать событие из-за пределов класса, как это.
myCustomGUIElement.Click(sender,args);
Недостатком является то, что код, использующий класс, может очень легко перезаписать любые зарегистрированные обработчики с помощью кода, подобного следующему:
myCustomGUIElement.Click = null;
, что запрещено, если делегат Click объявлен как событие.