title: Windows Forms: Activate method and Activated event
body: <p>When I load a form as follows:</p>
  
  <pre><code>     MYFORM f = new MYFORM();
       f.MdiParent = this;
       f.Show();
  </code></pre>
  
  <p>its MyForm_Activated event fires.  But when I invoke the form's <strong>Activate</strong> method:</p>
  
  <pre><code>     // if form is already loaded just activate it:
         f.Activate();
  </code></pre>
  
  <p>MyForm_Activated event does not fire. Is this behavior by design or am I missing something? I would like the form's Activated event to fire when the form is activated.  Is that possible? Thanks</p>
  
  <p>EDIT FOR CLARITY:</p>
  
  <p>I have a MDI parent form which launches a child form. The child form displays a report, and  it is told which report to display via its constructor:</p>
  
  <pre><code>     public   ReportForm( MyReport RPT)
           {
               InitializeComponent();
               this.reportViewer1.Report = RPT;
               this.reportViewer1.RefreshReport();  
            }
  </code></pre>
  
  <p>The parent MDI form had done this to launch the ReportForm:</p>
  
  <pre><code>            ActivateOrLoad action = ActivateOrLoad.Load;   // default; a custom enum
  
              foreach (Form ff in this.MdiChildren)
             {
               if (ff.Name == "ReportForm")
               {
                   action = ActivateOrLoad.Activate;  
                   ff.Activate();
               }
             }
  
             //load the form only if it is not already loaded
              if (action == ActivateOrLoad.Load)
               {
                 ReportForm f = new ReportForm( new MyReports.CustomerList() );
                 f.MdiParent = this;
                 f.Show();
               }
  </code></pre>
  
  <p>When the child ReportForm is instantiated via its constructor, its Activated event fires. But when the child form is simply activated, then the child form's Activate method does not fire. In other words, activating a child form via its Activate method does not actually activate it. Microsoft is using "activate" to mean multiple, different things. That's what was/is confusing me.</p>
  
  <p>@Dyppl: When the parent form invokes the child form's Activate method, the parent form has the focus.</p>
  
  <p>What I am hoping to do is REUSE the ReportForm to display various reports.  If it is already open displaying the Customers list, say, and then the user selects some other report, I want the child form to display the other report.  I was hoping to assign a custom public ReportForm.CurrentReport property and then simply (re)activate the child form, and have its activate event do this:</p>
  
  <pre><code>     ReportForm_Activate()
           {
               this.reportViewer1.Report = this.CurrentReport;
               this.reportViewer1.RefreshReport();  
            }
  </code></pre>