lunes, 1 de marzo de 2010

Permitir solo números en el textbox


En esta ocación tan solo queria escribir algo y se me ocurrió la clasica “PERMITIR SOLO NÚMEROS O TEXTOS EN UN TEXTBOX o COMBOBOX”, bueno aquí se las dejo.

Solo números:
en el evento KeyDown del TextBox o ComboBox agregan

Código:
If Not ((e.KeyValue >= 48 And e.KeyValue <= 57) OrElse (e.KeyValue >= 96 And e.KeyValue <= 105) OrElse (e.KeyValue >= 37 And e.KeyValue <= 40) OrElse (e.KeyValue = 8 OrElse e.KeyValue = 46)) OrElse (e.Shift = TrueOr e.Alt = True) Then
 
 e.Handled = True
 
 e.SuppressKeyPress = True
 
EndIf
e.KeyValue representa el valor en número de la tecla precionada.

El valor 8 = Borrar
El valor 46 = Suprimir

los valores entre [48 y 57] y [96 y 105] son los correspondientes a las teclas del 0 al 9 del teclado alfanumérico y numérico respectivamente.

los valores entre [37 y 40]son los correspondientes a las teclas del direccionales arriba, abajo… para poder desplazarnos dentro del texto.

tambien se determina si se ha oprimido la tecla Shift o la tecla Alt esto para evitar que se impriman los caracteres tales como |, !, @, ”, #, ·, $, ~, %, €, &, ¬, /, (, ), =… y otros dependiendo de la configuración y el idioma del teclado.

Para permitir la entrada de texto exclusivamente solo debemos reemplazar los valores numéricos por los corresponientes a las teclas alfanuméricas.

Esto >> ((e.KeyValue >= 48 And e.KeyValue <= 57)
OrElse (e.KeyValue
>= 96
And e.KeyValue
<= 105)


Por esto >> ((e.KeyValue
>= 65
And e.KeyValue
<= 90)


Además ya no es nescesaria la comprobación del Tab y del Shift.

Código:
If Not((e.KeyValue >= 65 And e.KeyValue <= 90)OrElse (e.KeyValue >= 37 And e.KeyValue <= 40) OrElse (e.KeyValue = 192) OrElse (e.KeyValue = 8 OrElse e.KeyValue = 46)) Then
 
 e.Handled = True
 
 e.SuppressKeyPress = True
 
EndIf

No hay comentarios:

Publicar un comentario