title: Reset focus to control with lowest tab index
body: <p>I have a form that is re-used. That is, instead of creating a new instance of the form each time, the form is kept hidden, and is made visible when needed. (A design I inherited; I presume this was a performance optimization.)</p>
  
  <p>The problem: The second time that the form is used, the focus is on the OK or Cancel button, from the first use of the form.</p>
  
  <p>The user wants the focus to start the way it did the first time the form appears - on the control with lowest tab index.</p>
  
  <p>If there were just one such form, I would hack it: add a line of code hardwired to the desired  control.</p>
  
  <p>But there are many such forms, and the visibility logic is in a common base class.</p>
  
  <p>So it would make more sense to do this right, and tell the form to focus on its first (lowest tabindex) control.</p>
  
  <p>Is there an easy way to do so?</p>
  
  <p>(I could iterate through all the controls, but then I have to correctly handle nested controls. Since the GUI has to do this the first time it shows a form, I am hoping there is some method I can call that does it for me.)</p>
  
  <p>(Coded in VB.net, but a C# answer would be fine.)</p>