title: Clearing Panel controls fail to call Form.Close (or) Form.Leave events
body: <p><strong>What I have done</strong>:<br>
  I have 3 <code>Forms</code>, in which I have panel in <code>Form_1</code> and 2 buttons (<code>button_1</code>, <code>button_2</code>).</p>
  
  <p><code>button_1</code> click event add the <code>Form_2</code> in panel. (before if I clear the <code>Panel</code> controls)
  <code>button_2</code> click event add the <code>Form_3</code> in panel. (before if I clear the <code>Panel</code> controls)</p>
  
  <p><strong>What I look for</strong>:<br>
  In <code>Form_2</code> and <code>Form_3</code> i have <code>Form.closing()</code> and <code>Form.Leave()</code> event, but non of this function called.<br></p>
  
  <p>I have opened Serial Port in <code>Form_2</code>, it fails to close properly.</p>
  
  <p>Here's my code:</p>
  
  <pre><code>public partial class Form_1 : Form
  {
      public Form_1()
      {
          InitializeComponent();
      }
  
      private void button_1_Click(object sender, EventArgs e)
      {
          Form_2 ObjForm_2 = new Form_2();
          panelBody.Controls.Clear();
          panelBody.Refresh();
  
          if (ObjForm_2.IsDisposed)
          {
              ObjForm_2 = new Form_2();
          }
          ObjForm_2.TopLevel = false;
          ObjForm_2.FormBorderStyle = FormBorderStyle.None;
          ObjForm_2.Dock = DockStyle.Fill;
          panelBody.Controls.Add(ObjForm_2);
          ObjForm_2.Show();
      }
  
      private void button_1_Click(object sender, EventArgs e)
      {
          Form_3 ObjForm_3 = new Form_3();
          panelBody.Controls.Clear();
          panelBody.Refresh();
  
          if (ObjForm_3.IsDisposed)
          {
              ObjForm_3 = new Form_3();
          }
          ObjForm_3.TopLevel = false;
          ObjForm_3.FormBorderStyle = FormBorderStyle.None;
          ObjForm_3.Dock = DockStyle.Fill;
          panelBody.Controls.Add(ObjForm_3);
          ObjForm_3.Show();
      }
  }
  </code></pre>