Raise Eventos de clase base en clases derivadas C #

Tengo una clase base DockedToolWindow: Form, y muchas clases que derivan de DockedToolWindow. Tengo una clase contenedor que contiene y asigna eventos a los objetos DockedToolWindow, sin embargo, quiero invocar los eventos de la clase secundaria.

Realmente tengo una pregunta sobre cómo implementar lo que esteMSDN site me dice que haga. Esta sección a continuación me está dando el problema:

    // 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);
        }
    }

Asegúrese de que este ejemplo se compila y funciona, pero cuando reemplazo "ShapeChanged" con "Move" (un evento que adquirí al derivar del Formulario), es un error decir que no puedo tener Move en el lado derecho sin + = o - =. También eliminé las etiquetas genéricas ShapeEventArgs.

¿Alguna incitación sobre por qué esto no funciona? ¿Cuál es la diferencia entre un evento declarado dentro de la clase y uno que se hereda?

Respuestas a la pregunta(4)

Su respuesta a la pregunta