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