Visual Basic - Ingresar unicamente caracteres numericos

Life is soft - evento anual de software empresarial
 
Vista:

Ingresar unicamente caracteres numericos

Publicado por Gabriel (7 intervenciones) el 03/09/2008 02:23:36
Hola gente, como va? n_n

quiciera saber como hago para restringir un textbox para q solo se le puedan ingresar numeros.

asi como para el telefono, numero de documento, numero de puerta, etc.

muchas gracias n_n
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ingresar unicamente caracteres numericos

Publicado por Juan Rivera  (21 intervenciones) el 03/09/2008 03:34:28
Seria asi amigo:

en el evento keypress (Keyascii as integer)

select case keyascii
case 48 to 57
case 8
case 32
case else
keyascii = 0
end select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1
Ha aumentado su posición en 86 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Ingresar unicamente caracteres numericos

Publicado por Matias (136 intervenciones) el 03/09/2008 03:36:39
suponiendo que es text8, en el evento keypress aplicas esto y listo

Private Sub Text8_KeyPress(KeyAscii As Integer)



'Valor de las letras en el código Ascii=
'32=espacio, 8=<--,"0"=48 entre "9"=57, 13=enter

letra = Chr(KeyAscii)
letra_mayus = UCase(letra)
'Asc(str):convierte una letra en su valor en el código Ascii.
b = Asc(letra_mayus)

If Not ((b >= 48 And b <= 57) Or b = 8 Or b = 13) Then
KeyAscii = 0

End If

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar unicamente caracteres numericos

Publicado por marchand (59 intervenciones) el 03/09/2008 09:52:04
No se necesita tanta parafernalia:

Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0
End Sub

Nota: El código ascii 8 corresponde a la tecla de retroceso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar unicamente caracteres numericos

Publicado por Diego (211 intervenciones) el 03/09/2008 16:47:05
Si a la linea de Marchand le añadimos este pequeño detalle, ya es que te cagas, porque tambien entra el guion, para numeros negativos y separador para telefonos, etc

If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 And KeyAscii <> 45 Then KeyAscii = 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ingresar unicamente caracteres numericos

Publicado por igor (633 intervenciones) el 03/09/2008 19:30:59
Todo esto está bien marchand y Diego, pero una de las cosas que se deben tener en cuenta en programación es la legibilidad del código. Yo personalmente prefiero la opción de select case, porque se entiende mejor y porque es más versatil ya que podemos ampliar o cambiar facilmente con otras situaciones y caracteres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar