Aceptar sólo número en un TextBox

2017 vistas

Nos vamos a servir del evento KeyPress para interceptar los carácteres entrados en el TextBox. La propiedad Handle de la clase KeyPressEventArgs indica a la aplicación lo que tiene que hacer con el carácter interceptado. Si vale false, se aplicará el tratamiento por defecto (es decir, mostrar el carácter si es imprimible). Si vale true, será nuestro código el que decidirá qué hacer con el carácter (si no hacemos nada, no se mostrará nada)

Ejemplo:



vbnet
  1. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) _
  2. Handles TextBox1.KeyPress
  3.  
  4.     If Not Char.IsDigit(e.KeyChar) Then
  5.         ' no tratamos los carácteres no numéricos en el TextBox.
  6.         e.Handled = True
  7.     End If
  8.  
  9. End Sub



Nota: destacar que los carácteres no imprimibles como la tecla BACK también se deshabilitarán con este código.
Si queremos hacer un control total, tendremos que controlar ésto y la pulsación de teclas como CTRL+C o CTRL+V en el evento KeyDown o el clic del ratón (menú contextual - pegar).