Yo solo quiero Numeros!

Independientemente de las mil y una formas para filtrar/formatear entradas de texto, me gustan las sencillas sin retorcimientos. Aquí te dejo una idea de cómo aplicar reglas cuando se trata de todo un form, aunque trabajandolo puedes customizar el comportamiento en funcion al control que tiene el foco. No olvides que tambien dispones de un espacio de nombres sensacional :

Imports System.Text.RegularExpressions

Aunque como te digo, en determinadas ocasiones cabe aplicar lo sencillo si con ello cubrimos las necesidades. ;-)
El siguiente ejemplo demuestra como filtrar la pulsación de cualquier tecla que no sea numerica o coma.

Private Sub Form1_Load() Handles MyBase.Load
    Me.KeyPreview = True
End Sub 

Protected Overrides Function ProcessDialogKey(ByVal keyData As System.Windows.Forms.Keys) As Boolean
    Select Case keyData
        ' 48 a 57  = numericas encima teclado alfabetico
        ' 97 a 106 = Numericas teclado numerico
        Case 48 To 57, 97 To 106, Keys.Oemcomma
            'Solo devolver las pulsaciones que pasan el filtro
            Return MyBase.ProcessDialogKey(keyData)
        Case Else
            'Evitar la propagacion de la pulsacion
            'de teclas que no nos interesan
            Return True
    End Select
End Function

Lo Bueno y simple… Dos veces bueno!
Pep Lluis

Published Wed, Jul 2 2008 19:18 by peplluis
Filed under:

Comments

# re: Yo solo quiero Numeros!

Thursday, July 03, 2008 4:03 PM by Fsigu

amigo como haria para ponerlo en un user control para que en un text box solo me acepte numero y tener una propiedad que indique que numero quiero validar, entero o decimal, etc, espero que me puedas ayudar

# re: Yo solo quiero Numeros!

Thursday, July 17, 2008 12:29 PM by Rafael Vargas

También deberías considerar el caso de la pulsación del Ctrl + X, C ó V. Al final, siempre acaba haciendo falta :P

# re: Yo solo quiero Numeros!

Friday, July 18, 2008 1:41 AM by peplluis

Hombre don Rafael!

Pues delo por considerado!, solo deberiamos añadir las series adecuadas para que pasen el filtro, asi como tambien deberiamos añadir el Chr(8) para procesar el imprescindible 'backspace' ;-)

No hay nada como ser buenos y previsores! jajajajaja.

Un Abrazo,

Pep Lluis,

# re: Yo solo quiero Numeros!

Wednesday, July 23, 2008 3:44 AM by peplluis

Hola Fsigu,

Deberias utilizar los eventos :

   TextBox1.PreviewKeyDown

   TextBox1.KeyDown

   TextBox1.KeyPress

   TextBox1.KeyUp

Si con esto no es suficiente concreta que tipo de filtro te interesa aplicar al textbox y razonamos la mejor forma de hacerlo.

Saludos,

Pep Lluis,

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: