Повышение событий базового класса в производных классах C #

У меня есть базовый класс DockedToolWindow: Form и многие классы, производные от DockedToolWindow. У меня есть контейнерный класс, который содержит и присваивает события объектам DockedToolWindow, однако я хочу вызывать события из дочернего класса.

У меня на самом деле есть вопрос о том, как реализовать то, что этоСайт MSDN говорит мне сделать. Этот раздел ниже дает мне проблему:

    // The event. Note that by using the generic EventHandler<T> event type
    // we do not need to declare a separate delegate type.
    public event EventHandler<ShapeEventArgs> ShapeChanged;

    public abstract void Draw();

    //The event-invoking method that derived classes can override.
    protected virtual void OnShapeChanged(ShapeEventArgs e)
    {
        // Make a temporary copy of the event to avoid possibility of
        // a race condition if the last subscriber unsubscribes
        // immediately after the null check and before the event is raised.
        EventHandler<ShapeEventArgs> handler = ShapeChanged;
        if (handler != null)
        {
            handler(this, e);
        }
    }

Конечно, этот пример компилируется и работает, но когда я заменяю «ShapeChanged» на «Move» (событие, которое я получил при извлечении из формы), это приводит к ошибкам, говоря, что у меня не может быть Move на правой стороне без + = или - =. Я также удалил общие теги ShapeEventArgs.

Кто-нибудь провоцирует, почему это не работает? В чем разница между объявленным в классе событием и наследуемым?

Ответы на вопрос(4)

Ваш ответ на вопрос