Вы смешиваете понятия, вам не нужен делегат для регистрации событий, попробуйте этот код, и я объясню изменения и постараюсь ответить на ваши вопросы ниже
public event EventHandler Validating;
private void OnValidating(EventArgs ea)
{
var e = Validating;
if (e != null)
e(this, ea);
}
На странице с использованием элемента управления обратите внимание на На , платформа добавляет это для всех событий:
<uc:MyUserControl OnValidating="myhandlermethodinpage" />
- VS не является на 100% точным, иногда свойства элементов управления не отображаются! Intelissence надежнее
- Поскольку они не были определены как частные, только событие должно быть открытым.
- Не уверен, что это будет возможно, вам нужно захватить событие текстового поля в элементе управления и заставить его вызвать свое новое событие.
Не удалось добавить комментарий, но в основном, если вам нужны настраиваемые аргументы событий, сделайте так:
public event EventHandler<CustomEventArgs> Validating;
private void OnValidating(CustomEventArgs ea)
{
var e = Validating;
if (e != null)
e(this, ea);
}
public class CustomEventArgs:EventArgs{
public int MyProperty { get; set; }
}