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

#1 Rodacaps
26/07/2003 - 09:26 | Informe spam
y por que no controlas que no puedas introducir números y ya está. Creo que
es lo mas rápido según he leido, referente al ratón, "no entiendo" a no ser
que te refieras al copiar y pegar, claro, de lo contrario no se a que te
refieres.
Espero te sea de ayuda

Saludos

Rodacaps

Avda. del Cid, 10 Bajo
System Valencia

"Aníbal" escribió en el mensaje
news:
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.




Respuesta Responder a este mensaje
#2 Alberto Román
26/07/2003 - 11:01 | Informe spam
Hola Anibal

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:



Prueba el siguiente codigo, que ofrecio hace algunos días el compañero
Enrique Martínez, a mi me ha servido de maravilla y he quitado buena parte
de código innecesario:

Public Sub ModoMayusculas(ByVal hWndTextBox As Long)
SetWindowLong hWndTextBox, -16, GetWindowLong(hWndTextBox, -16) Or &H8&
End Sub

Public Sub ModoMinusculas(ByVal hWndTextBox As Long)
SetWindowLong hWndTextBox, -16, GetWindowLong(hWndTextBox, -16) Or &H10&
End Sub

Para utilizarlas, en el evento «Load» del formulario:

odoNumerico txtAño.hWnd
ModoMayusculas txtCodigoArticulo.hWnd
ModoMinusculas txtEMail.hWnd



No te olvides de hacer referencia a las API's SetWindowLong y GetWindowLong

Referente a tu segunda pregunta:
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.



Me imagino que te refieres a la opción de "Pegar" (Ctrl+V), si es así,
puedes utilizar un pequeño truco, que consiste en borrar el contenido del
Clipboard cuando el TextBox recive el enfoque, ejemplo:

Private Sub Text1_GotFocus()
Clipboard.Clear
End Sub


Un saludo,
Alberto Román
Respuesta Responder a este mensaje
#3 Aníbal
27/07/2003 - 00:09 | Informe spam
Perdón, y como sería el código para simplemente deshabilitar el item "Pegar"
del menu flotante que aparece al hacer clic derecho con el mouse sobre un
TextBox?
Respuesta Responder a este mensaje
#4 Alberto Román
27/07/2003 - 00:54 | Informe spam
Hola Anibal,

Para deshabilitar la opción del menu contextual, no estoy seguro. Pero si
borrar el contenido del portapapeles (Clipboard), como te propuse
anteriormente, no tiene caso que la deshabilites, pues no habra nada que
"pegar"

Private Sub Text1_GotFocus()
Clipboard.Clear
End Sub



Espero te sirva mi propuesta.

Alberto Román
Respuesta Responder a este mensaje
#5 Hernán
27/07/2003 - 01:12 | Informe spam
"Alberto Román" escribía:

Hola Anibal,

Para deshabilitar la opción del menu contextual, no estoy seguro. Pero si
borrar el contenido del portapapeles (Clipboard), como te propuse
anteriormente, no tiene caso que la deshabilites, pues no habra nada que
"pegar"




Pero ese sería un acto criminal :)

¿cómo el programa se va a meter a borrar el portapapeles para evitar un
paste en uno de sus controles!!!

Private Sub Text1_GotFocus()
Clipboard.Clear
End Sub



Espero te sirva mi propuesta.

Alberto Román





Hernán (27)
quilmes.ar
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida