Como puedo hacer para que el usuario no pueda escribir Letras, digamos en Un Text que nesecita Un numero de telefono?
Trate de encontrar en la propiedades del Text pero no tuve suerte.
Gracias por su ayuda
cacho
| |||
Como Impedir que escriban Letras, solo Numeros en un Text ? Como puedo hacer para que el usuario no pueda escribir Letras, digamos en Un Text que nesecita Un numero de telefono? Trate de encontrar en la propiedades del Text pero no tuve suerte. Gracias por su ayuda cacho |
| |||
en archivo de texto?? porque no pones algo asi como getCHar (o no me acuerdo como se llama la funcion) y pones algo asi si como: if ( char == 1 || char==2 ....etc) escribe else no escribas |
| |||
creo que no me explique, en TextBox de VB. En el TextBox quiero que escriban El Numero de telefono, pero tambien deja escribir letras, claro despues sale error, pero quiero que no deje escribir letras solo numeros |
| ||||
Podrías usar la API de Windows...
Código:
Puesto que parece que el campo siempre habrá de recibir números, la anterior función es adecuada. Si quisieras que el campo en algún momento volviera a tomar caracteres alfabéticos, habría que anular el flag, y es sólo una modificación sencilla.'Ejemplo basado en documentación de API-Guide http://www.allapi.net/ 'A nivel de módulo pon el siguiente código Const GWL_STYLE = &HFFFFFFF0 Const ES_NUMBER = &H2000& Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Sub SetNumeric(ByRef NumberText As TextBox) Dim lEstiloAct As Long 'Obtienes el estilo de la ventana (en este caso cuadro de texto) lEstiloAct = GetWindowLong(NumberText.hwnd, GWL_STYLE) 'Modificas el estilo actual asignándole el flag de estilo Solo-Numérico lEstiloAct = lEstiloAct Or ES_NUMBER 'Asignar al cuadro de texto el nuevo estilo SetWindowLong NumberText.hwnd, GWL_STYLE, lEstiloAct 'Actualizas para que tome el cambio NumberText.Refresh End Sub Cuando quieras que algún campo de texto deje de recibir caracteres alfabéticos, simplemente llamas a la función así:
Código:
Y no tienes que volver a preocuparte por las letras en tu campo...'Text1 es un campo de texto SetNumeric Text1 Espero que te sirva. Saludos. |
| ||||
Por cualquier cosa aqui te pongo el código anterior libre de comentarios Private Sub TNumeros_KeyPress(KeyAscii As Integer) KeyAscii = Numeros(KeyAscii) End Sub Public Function Numeros(Tecla As Integer) As Integer Dim strValido As String strValido = "0123456789" If Tecla > 26 Then If InStr(strValido, Chr(Tecla)) = 0 Then Tecla = 0 End If End If Numeros = Tecla End Function
__________________ Abraham Velasco Usuario # 516 en los Foros del Web. El hombre no vale por lo que sabe, sino por lo que transmite C'est parce qu'il y a un Dieu que nous sommes libres |
| |||
Cita:
Iniciado por Beakdan Podrías usar la API de Windows... [CODE] 'Ejemplo basado en documentación de API-Guide http://www.allapi.net/ oye Beakdan , hay alguna pagina asi pero para C/C++ que vengan todas las funciones del winapi??? o son exactamente las mismas y se utilizan igual (es que no se nada de VB)??? |
| ||||
blackwind: La API es la misma siempre que programes en Windows. Las funciones puedes usarlas con cualquier lenguaje de programación cuyo resultado final sea un exe para windows. Las he usado con Visual Basic, con Delphi y con C++ al menos. Lo único que cambia es la declaración para cada lenguaje. Para Visual Basic, la declaración adecuada la puedes encontrar con el "API Viewer" incluido en las herramientas de Visual Studio (aunque no incluye todas las declaraciones). En http://msdn.com busca "Platform SDK". El kit de desarrollo de software (SDK) es la referencia completa de la API de Windows, y es descargable gratuitamente (pero es enorme). También viene con Visual Studio. aavg: Supongo que tienes razón, pero me he acostumbrado tanto a la API, que ahora la uso en toda aplicación que hago. Es cierto que sus funciones suelen ser vistas como un "tópico complicado", sin embargo hay cosas que por eficiencia o velocidad resultan mucho más sencillas de realizar con la API. Aunque en este caso no importa, creo que la función que puse es muy sencilla ¿me equivoco? Hasta luego. |
| ||||
si no estoy mal ese tema ya estaba en las FAQ's,,, nos vemos
__________________ * Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ Sitio http://www.geoavila.com twitter: @GeoAvila |
| |||
No es mas facil usar la funcion IsNumeric() ? Creo que el codigo seria el siguiente If IsNumeric(Text1.text) then 'codigo en caso de ingresar un numero Else 'codigo en caso de NO ingresar un numero End If
__________________ Un angel le dice a Dios - Señor han descifrado el genoma humano - a lo que Dios contesta - Condenados hackers, voy a tener que cambiar la contraseña |
| |||
Respuesta: Como Impedir que escriban Letras, solo Numeros en un Text ? Hola en Visual basic6 Seria del siguiente modo Un control llamando TxtUsuario y metemos el sgte codigo en su evento KEYPRESS
Código vb:
Ver original Pruebalo y me dices www.bitxense.com.pe | Soluciones Informaticas S.A.C. - [email protected] Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo MSN [email protected] Lima-Peru |