Ключевое слово event явно запрещает доступ к такому событию.Единственными допустимыми операциями являются добавление обработчика (оператор + =), удаление одного (оператор = =) и создание события.Если вы хотите получить доступ к базовому объекту делегата, вам нужно предоставить методы добавления и удаления, чтобы обернуть объект делегата, вместо того, чтобы использовать объекты по умолчанию, которые генерирует компилятор.Например:
public interface class IFoo {
event EventHandler^ eh;
};
ref class Bar : IFoo {
private:
EventHandler^ dlg;
public:
event EventHandler^ eh {
virtual void add(EventHandler^ handler) { dlg += handler; }
virtual void remove(EventHandler^ handler) { dlg -= handler; }
};
public:
void test() {
EventHandler^ copy = dlg;
// etc.., fire for example
copy(this, EventArgs::Empty);
}
};
Подумайте, действительно ли это то, что вы хотите сделать, это вряд ли будет правильным.