Introducir solo numero al textbox de calculadora

¿Alguien podría ayudarme como introducir solo números a mi textbox de mi claculadora? Yo lo estaba haciendo de esta forma acá les mando mi código alguien podría darle una corregida
Private Function comprobar() As Boolean
If Len(cajadetexto.Text) < 12 Then
comprobar = True
Else
comprobar = False
End If
End Function
Private Sub borrar_Click()
num1 = 0
resul = "0"
cajadetexto.Text = resul
oper = ""
End Sub
Private Sub cajadetexto_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48
Call cmd0_Click
Case 49
Call cmd1_Click
Case 45
Call resta_Click
Case Else
KeyAscii = 0
Beep
End Select
End Sub
Private Sub cmd0_Click()
If comprobar Then
cajadetexto.Text = cajadetexto.Text & "0"
Else
cajadetexto.Text = cajadetexto.Text
End If
End Sub
Private Sub cmd1_Click()
' si en la caja de texto tengo un cero borro el cero para que entre el valor del boton'
If cajadetexto.Text = "0" Then
cajadetexto.Text = ""
End If
If comprobar Then
cajadetexto.Text = cajadetexto.Text & "1"
Else
cajadetexto.Text = cajadetexto.Text
End If
End Sub
1

1 respuesta

Respuesta
1
¿Visual basic 6.0?
Agrega esta función
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
Y la mandas llamar en el evento keypress de la caja de texto
Algo así:
keyascii=numeros(keyascii)
Hola kapo disculpa por la tardanza ya me ayudaste bastante... pero este código es de una calculadora quisiera que también que me responda a las teclas de sumar restar y cosas así ose que pueda usar eso procedimientos que ya tengo echos y que mi textbox tenga un tope que no reciba más de 15 números... por favor podrías darle una corregida ah y si serias tan amable de esplicarmelo paso por paso desde ya gracias !
Aver si funciona...
Esto va en el eventokeypress
aaa = KeyAscii 'guardas el valor de lo que te da al momento de teclear cualquier cosa KeyAscii = numeros(KeyAscii) 'validamos que solo sean numeros
ss = Val(Text8.Text) 'guardamos lo que hay en la caja de texto
If aaa = 43 Then 'si teclea  "+" asignaremos una variable para saber que sera una suma
    key = 1' 1 si es suma. Cuando fuera resta seria 2 por ejemplo
    ss1 = Val(Text8.Text) 'guardamos el valor de lo que vamos a sumar
    Text8.Text = "" ' limpiamos la caja de texto
End If
If aaa = 13 Then ' aqui puedes poner el 61 que es el codigo en ascii de la tecla "=", 13 es el de "enter"
    If key = 1 Then ' si key es =1 sera una suma
        Text8. Text = ss1 + Val(Text8.Text) ' sumamos la variable que guardamos anteriormente al teclear "+" y la sumamos a lo que ahora hay en la caja de texto y la imprimimos en la caja de texto o si lo prefieres en otra caja de texto
    End If
End If
End Sub
Esto es solo para la tecla de suma a ti te toca solo cambiar el valor en código ascii al momento de comparar,
creo que hay una función para contar los caracteres de un string pero no recuerdo muy bien cual es, pero puedes utilizar una bandera que vaya contando hasta 15 y después invalidar la caja de texto,
espero no revolverte y que te sirva
saludos
Perdón... donde mandas llamar a la función donde validas va en el sig renglón
¿Te sirvió?
Finaliza la pregunta porfas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas