title: Why is there an infinite loop on my LostFocus Event
body: <p>I'm a beginner with C# and I'm developing a basic application.<br>
  I want to check if the value of a textbox is a number with the following code :  </p>
  
  <pre><code>private void check_value(object sender)
      {
          TextBox tb = (TextBox)sender ;
          if (!Utility.isNumeric(tb.Text)){
              MessageBox.Show(tb.Text.Length.ToString());
              tb.Focus();
          }
      }
  
      private void Amount_1_LostFocus(object sender, RoutedEventArgs e)
      {
          check_value(sender);
      }
  </code></pre>
  
  <p>When I enter a letter in the textbox there is an infinite loop and it seems that the tb.Focus() actually cause the LostFocus event to be call recursively.
  I don't understand why the call to the Focus method of an object triggers the LostFocus event of the same object.</p>