title: How to only Paint viewable content in .net Forms 2.0 CF
body: <p>I currently have a form with a scrollable panel that potentially contains over 100 child controls (only about 10 are viewable on screen at any time)</p>
  
  <p>This causes a lot of flickering when scrolling.</p>
  
  <p>I have been looking at some double-buffering techniques, but they won't work in my case since I am using several child controls (Buttons, Labels, Checkboxes) and they all get painted independently. I can't do anything in the panel's OnPaint method that affect the children.</p>
  
  <p>And several answers I have read state that adding existing controls take more resources rather than, say,  instead of a Label, just painting a colored square with text over top.</p>
  
  <p>I have 2 main questions:</p>
  
  <ul>
  <li>If I were to no longer us child controls, and instead just draw everything in OnPaint of the panel, how can I paint only what is currently visible (considering that the user can scroll)</li>
  <li>How would I implement things like check boxes?</li>
  </ul>