Programación General > Visual Basic 6.0 e inferiores
Solo Numeros En Textbox
supermancito:
--- Citar ---Private Sub Text1_KeyPress(KeyAscii As Integer)
numeros = Chr(KeyAscii)
Print n
If InStr(n, "1234567890") <> 0 Then
KeyAscii = 0
End If
End Sub
--- Fin de la cita ---
mira amigo a mi parecer no creo que tengas que usar ese codigo yo uso uno diferente que me permite ingresar solo numeros y a las ves me deja usar decimales y usar la tecla enter para poder entrar aver si lo tomas en cuenta SUERTEEEEEEEEEEEEEE
YO USO ESTE CODIGO:
--- Citar ---Private Sub telf_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57:
Case 32:
Case Else:
MsgBox ("error solo numeros")
End Select
End Sub
--- Fin de la cita ---
:hola: :hola: :hola: :hola: :hola: :hola: :hola: :hola: :hola: :hola: [/color]
ldvgsmca:
--- Cita de: "abelsql3000" --- Ya estoy algo oxidado en vb. He programado antes, pero como lo he dejado ud comprenderan.
Estoy haciendo esta linea de codigo donde intendto restringir el cuadro de texto a solo numeros.
Como veran uso el evento keypress
y la funcion INSTR
Este es el codigo
Private Sub Text1_KeyPress(KeyAscii As Integer)
numeros = Chr(KeyAscii)
Print n
If InStr(n, "1234567890") <> 0 Then
KeyAscii = 0
End If
End Sub
En que me estoy equivocando amigos programadores
De ante mano les agradesco su aporte. atte Abel.
--- Fin de la cita ---
bueno amigo te envio un excelente ejemplo que he desarrollado para controlar los datos suministrador por en usuario.
esta funcion controla hasta la coma y el punto en los formato de los numero
gbetancourt:
Estimado tengo el mismo problema que lo solucione con el siguiente codigo:
Private Sub caudal_KeyPress(KeyAscii As Integer)
Dim numeros As String * 12
Dim num As String
Dim v As Integer
numeros = "0123456789," & vbBack
num = Chr(KeyAscii)
v = InStr(1, numeros, num)
If v = 0 Then
KeyAscii = 0
End If
End Sub
pero me da un error cuando borro el ultimo digito, o el primero que ingrese, con el backspace.
creo q es debido a que asigno el valor engresado en el textbox a una variable de esta manera.
Public CAU As Single
Private Sub CAUDAL_Change()
CAU = CAUDAL.Text
End Sub
espero me puedan ayudar, de antemano gracias....
m0skit0:
Me vais a perdonar, pero todos aquellos que estáis usando cadenas de caracteres cuando la función os pasa un entero lo estáis haciendo mal.
Una característica fundamental de un programa es que corra rápido. Y bien es conocido que en Visual Basic las cadenas de caracteres son muy lentas de manejar. Es mejor evitar su uso siempre que sea posible. Y desde luego si ya tenemos un número, manejemos números. En vez de una cadena de caracteres con los caracteres válidos, pues un array de sus códigos ASCII. ¿Para qué llamar a InStr(), que lentifica el proceso, y usar cadenas de caracteres que rellenan memoria inútilmente? En fin, que la mejor manera es usar números, que para eso están hechos los computadores, y encima el parámetro pasado por el evento es un Integer. ¿Por qué será? ;)
Navegación
[*] Página Anterior
Ir a la versión completa