title: Raise Base Class Events in Derived Classes C#
body: <p>I have a base class DockedToolWindow : Form, and many classes that derive from DockedToolWindow. I have a container class that holds and assigns events to DockedToolWindow objects, however I want to invoke the events from the child class.</p>
  
  <p>I actually have a question about how to implement what this <a href="http://msdn.microsoft.com/en-us/library/hy3sefw3(VS.80).aspx" rel="noreferrer">MSDN site</a> is telling me to do. This section below is giving me the problem:</p>
  
  <pre><code>    // The event. Note that by using the generic EventHandler&lt;T&gt; event type
      // we do not need to declare a separate delegate type.
      public event EventHandler&lt;ShapeEventArgs&gt; 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&lt;ShapeEventArgs&gt; handler = ShapeChanged;
          if (handler != null)
          {
              handler(this, e);
          }
      }
  </code></pre>
  
  <p>Sure this example compiles and works, but when I replace "ShapeChanged" with "Move" (an event I acquired from deriving from Form), it errors saying I cannot have Move on the right side without += or -=. I also removed the ShapeEventArgs generic tags.</p>
  
  <p>Any incite on why this isn't working? What's the difference between an event declared within the class and one that is inherited?</p>