title: Making Windows Forms controls read-only and IDisposable
body: <p>I want to make Windows Forms controls readonly and IDisposable.</p>
  
  <p>Is this is a good thing or a bad thing and what do I have to watch out for when calling Dispose?</p>
  
  <p>I have a Tab (PageTab) that I extend and insert a Panel which has a listview and another Toolbar control into. These tabs then get inserted into a tab control (all native .NET Windows Forms controls). </p>
  
  <p>When the user closes one of these tabs I call the Dispose method (which follows the <a href="http://msdn.microsoft.com/en-us/library/b1yfkh5e.aspx" rel="nofollow noreferrer">MSDN</a> way of implementing IDisposable).</p>
  
  <p>Is it wise or suggested to declare the controls as read-only (see below)?</p>
  
  <pre><code>protected readonly ListView _AccountsList = new ListView();
  protected readonly Panel _Panel = new Panel();
  </code></pre>
  
  <p>Because in the Dispose method I just call <code>_Panel.Dipose()</code>, etc. on them, but I cannot set them to null. I want to avoid leaks as much as I can and have things garbage collected.</p>
  
  <p>What's the best way for a non-Designer GUI development and disposing them?</p>