title: Keep Focus on Textbox after user tried to move to other control (on failed validation) in winforms, .net 3.5 WEC7
body: <p>I want to Validate Userinput when he continues to the next TextBox, and keep focus on the last editied TextBox, if the inmput is invalid. 
  I tried the Validating and LostFocus events, but in both cases, if I try to refocus the TextBox, for which validation failed, the next textbox has already got focus, also throws the validating event...
  What I want:</p>
  
  <p>User edits in TextBox A<br>
  User leaves TextBox A (Click on TextBox B or Tab or...)<br>
  Input in TextBox A is validated<br>
  If Validation fails, a MessageBox is shown<br>
  The focus stays on TextBox A  </p>
  
  <p>What happends:<br>
  User edits in TextBox A<br>
  User leaves TextBox A (Click on TextBox B or Tab or...)<br>
  Input in TextBox A is validated (in validating event)<br>
  If Validation fails, a MessageBox is shown<br>
  Setting the focus back to TextBox A fires vaidating event in Textbox B<br>
  There has been no input in TextBox B, so it is invalid<br>
  The Message, that content of TextBox B is invalid is shown<br>
  ...
  Also, <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validating%28v=vs.90%29.aspx" rel="nofollow">MSDN tells</a> I should not set Focus in any of the following events:  Enter, GotFocus, Leave, LostFocus, Validating, or Validated. 
  So how can i return the focus to TextBox A, ifI must not set focus in one of these events?</p>
  
  <pre><code>        private void TextBoxA_Validating(object sender, System.ComponentModel.CancelEventArgs e) {            
          if (!IsValid(TextBoxA.Text)) // Some Method that returns false if Input is invalid
          {
              ... // show a message
                  TextBoxA.Focus();
          }                         
      }
  
      private void TextBoxB_Validating(object sender, System.ComponentModel.CancelEventArgs e) {            
          if (!IsValid(TextBoxB.Text)) // Some Method that returns false if Input is invalid
          {
              ... // show a message
                  TextBoxB.Focus();
          }                         
      }
  </code></pre>