Restringir Teclado.

25/07/2003 - 23:28 por Aníbal | Informe spam
Hola,
Quería saber cual es la mejor manera (el código más corto) para que en un
TextBox solo se puedan escribir letras (mayusculas y minusculas) y se pueda
precionar los botones, <Retroceso>, <Tab>,<Enter>,Ñ,ñ,<Espacio>
y todas las vocales con tilde (á,é,í,ó,ú.ÁÉÍÓÚ).
Yo lo hice pero me quedó muy largo y repeitivo:

Private Sub txt1_KeyPress(KeyAscii As Integer)

If KeyAscii > 90 Then
If ( _
KeyAscii < 97 Or KeyAscii > 122) And KeyAscii <> 180 And _
KeyAscii <> 193 And KeyAscii <> 201 And KeyAscii <> 225 And _
KeyAscii <> 233 And KeyAscii <> 205 And KeyAscii <> 237 And _
KeyAscii <> 211 And KeyAscii <> 243 And KeyAscii <> 241 And _
KeyAscii <> 209 And KeyAscii <> 250 And KeyAscii <> 218 Then _
KeyAscii = 0
ElseIf KeyAscii < 65 And KeyAscii <> 8 And KeyAscii <> 9 And _
KeyAscii <> 10 And KeyAscii <> 32 Then
KeyAscii = 0
End If
End Sub

Si es posible, además que se pueda evitar de alguna manera la incersión de
caracteres en el TextBox mediante el bóton derecho del mouse.
Gracias.

Preguntas similare

Leer las respuestas

#6 Alberto Román
27/07/2003 - 06:37 | Informe spam

Pero ese sería un acto criminal :)



jejeje, Pues si, puede que tengas razon, pero no se me ocurrio otra cosa,
pero como dije es una propuestas, Anibal sabra si la acaptar o no, aunque
parece que ya encontro otra forma de solucionarlo.

Un saludo ,
Alberto Román
Respuesta Responder a este mensaje
#7 Miguel Ángel 007
28/07/2003 - 19:40 | Informe spam
Te da el error porque me dejé esa función por poner:


Public Function gWindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal
wParam As Long, ByVal lParam As Long) As Long

If Msg = WM_CONTEXTMENU Then
Debug.Print "Intercepted WM_CONTEXTMENU at " & Now
gWindowProc = True
Else ' Send all other messages to the default message handler
gWindowProc = CallWindowProc(lpPrevWndProc, hwnd, Msg, wParam, lParam)
End If

End Function


Espero no dejarme nada más.

Saludos.

"Aníbal" escribió en el mensaje
news:
Hola,

Ese código me da Error, me dice "Se esperaba procedimiento" y me señala
"gWindowProc"
que está en el sub Hook

Public Sub Hook()
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf gWindowProc)
End Sub
Respuesta Responder a este mensaje
#8 Aníbal
28/07/2003 - 20:28 | Informe spam
No me funciona,
Puse todo el código en un Modulo
y en el evento form load del form que tiene el text:

gHW = txt1.hwnd
Call Hook

y en el evento Unload:


Call Unhook
Respuesta Responder a este mensaje
#9 Aníbal
28/07/2003 - 23:34 | Informe spam
Ahora si,
Muchas Gracias.
Ni me fije que era lo que me faltaba, simplemente me quedé con el ultimo
código (mentalidad de programador, que le vamos a hacer :-)).
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida