Number only textboxes

The WinForm textbox is a useful widget. You can enter just about anything into it. It is possible to set a flag and make it into a password entry box where all input is substituted for something else (such as an asterix). However, there is a limitation - you can't use it for numbers only. Okay, you could use a number up/down widget, but then there is a problem of having the up/down arrows.

There are two ways of using a textbox for numbers only. The first is to read the contents and use RegEx, but this is a bit of a pain and you have to understand RegEx. A much simpler method is to extend the textbox class

class NumberBox : TextBox
{
   public NumberBox()
   {
      this.CausesValidation = true;
      this.Validating += new CancelEventHandler(TextBox_Validation);
   }

   private void TextBox_Validation(object sender, CancelEventArgs e)
   {
      try
      {
         int value = System.Int32.Parse(this.Text);
      }
      catch (System.Exception)
      {
          e.Cancel = true;
      }
   }
}

Pretty much, that's all there is to it - if you enter a number, all is well. Enter text and it won't let you