La Web del Programador: Comunidad de Programadores
 
    Pregunta:  41352 - COMO HAGO QUE UN TEXTBOX ACEPTE SOLO CIERTOS CARACTERES???
Autor:  Julio Ochoa
En Visual Basic 6.0 bastaba con que en el evento KeyPress se le asignara cero al parametro KeyAscii para evitar que el caracter pulsado se visualizara.

En Visual Basec .NET Existe 'KeyChar' sin embarque es Read Only.

Espero que alguien pueda ayudarme a resolver esto.

De antemano Mil gracias.

  Respuesta:  Diego Carrillo
Julio mira, en NET es sencillo:

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 13 Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 32 Or Asc(e.KeyChar) = 46 Then 'Validamos si la tecla pulsada es numerica (1,2,3,4,5,6,7,8,9,0) o enter, o barra espaciadora, o retroceso
e.Handled = False 'El manejador de texto del textbox 1 permite entrar caracteres
else
e.Handled= True 'El manejador de texto del textbox1 no permite escrir
End if
End sub

  Respuesta:  Jose Luis Castillo
bueno solo se se escribe este codigo en la caja de texto en el evento Keypress:

if asc(e.keychar) = (Aqui,pones,los,caracteres,q,no,deseas,aceptar) then
msgbox(Aqui pones el mensaje q deseas q salga si se presiona el
caracter no deseado)
e.Handled = True
'esto se pone para q el caracter se borre
end if

claro q para hacerlo mas corto podrias ayudarte con un for o el poular select case.

bueno espero haberte ayudado

  Respuesta:  Julio César Ochoa
Para invalidar el efecto de las teclas precionadas en los eventos KeyPress solo debes utilizar e.Handled y asignarle el valor True.

Esto tiene la misma funcion que KeyAscii = 0 en Versiones anteriores de Visual Basic.