Para el caso de obligar a un TextBox en Windows forms para que solo acepte números, tenemos que agregar una funciona al textbox en su evento KeyPress. Esto lo podemos hacer dando clic en el control y en la pantalla de propiedades seleccionar el botón de eventos (el relámpago) y dar doble clic en el evento llamado KeyPress. Una vez que se asigna una función automática, ponemos el siguiente código:
1 2 3 4 5 6 7 | private void MiTextBox_KeyPress( object sender, KeyPressEventArgs e) { if (! char .IsControl(e.KeyChar) && ! char .IsDigit(e.KeyChar) ) { e.Handled = true ; } } |
Con eso bastara para obligar a tu control a no permitir letras ni otros caracteres que no sean números.
Podemos hacer lo mismo para números con decimales, pegando el siguiente código.
1 2 3 4 5 6 7 8 9 10 11 12 13 | private void MiTextBox_KeyPress( object sender, KeyPressEventArgs e) { if (! char .IsControl(e.KeyChar) && ! char .IsDigit(e.KeyChar) && (e.KeyChar != '.' )) { e.Handled = true ; } // solo 1 punto decimal if ((e.KeyChar == '.' ) && ((sender as TextBox).Text.IndexOf( '.' ) > -1)) { e.Handled = true ; } } |