Visual Basic - ACEPTAR VALORES NUMERICOS EN TEXTBOX

Life is soft - evento anual de software empresarial
 
Vista:

ACEPTAR VALORES NUMERICOS EN TEXTBOX

Publicado por Edin (10 intervenciones) el 03/08/2007 00:05:02
Hola a todos, desde hace mucho que ya no programo en Visual Basic, porque había emigrado a otro lenguaje de programación(Visual FoxPro), bueno talvez no les interese, resulta que ahora estoy tratando de programar nuevamente en VB, como hago para que al ingresar datos en un textbox, solo acepte valores numericos y no caracteres o letras. Gracias desde ya
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:ACEPTAR VALORES NUMERICOS EN TEXTBOX

Publicado por Sierra (11 intervenciones) el 03/08/2007 04:58:10
Hola

Los textbox en VB son muy diferentes en de los que se usan en Vfox, no manejan la opcion de sobreescribir y no contienen una opcion de formato de captura como lo hace un text de fox, pero he aqui un pequeño codigo que hace que se paresca un poco, haa solo sirve para numeros

Primero en un modulo.bas crea la siguiente funcion (para que te sirve en todos los formularios)

Sub ControlaInsert(texto As Control, tecla As Integer)
If tecla = 8 Or texto.SelLength > 0 Then Exit Sub 'emplear el comportamiento por defecto
texto.SelLength = 1 'marco el siguiente caracter al cursor
texto.SelText = Chr$(tecla) 'lo sustituyo por el que teclean
texto.SelLength = 0 'no selecciono ningun caracter
tecla = 0 'como procese la tecla la quito para que no se escriba de nuevo
End Sub

segundo en el evento keypress escribe (por ejemplo un textbox para capturar calificaciones :

Private Sub TxtCalificacion_KeyPress( KeyAscii As Integer)
Dim c As String * 1
If KeyAscii = 13 Then
' en caso de dar enter pasar el foco a otro objeto
TxtAño.SetFocus
Else
' para solo aceptar numeros
c = Chr(KeyAscii)
If InStr("0123456789." & Chr(8), c) = 0 Then
KeyAscii = 0
Else
' llamar a la funcion que controlo la sobreescritura
ControlaInsert TxtCalificacion, KeyAscii
End If
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:ACEPTAR VALORES NUMERICOS EN TEXTBOX

Publicado por nesti (29 intervenciones) el 03/08/2007 08:12:27
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 44 And (IsNumeric(Chr(KeyAscii))) = False And KeyAscii <> 8 Then
KeyAscii = 0 ' solo admite numeros y coma
Beep 'Sonido de error de entradaEnd If
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:ACEPTAR VALORES NUMERICOS EN TEXTBOX

Publicado por barca1010 (132 intervenciones) el 03/08/2007 08:20:30
Yo tengo este codigo que te puede servir tanto para numero como para cualquier otro caracter que desees permitir escibir en el textbox

Private Sub txtMontoProveedor_KeyPress(KeyAscii As Integer)
Call ValidarNumeroMoneda(KeyAscii)
KeyAscii = gKeyAscii
End Sub

Public Function ValidarNumero(ByVal Caracter As Integer)
Dim gStrVal as string

gStrVal = "1234567890"
Caracter = Asc(UCase(Chr(Caracter)))
If Caracter > 26 Then
If InStr(gStrVal, Chr(Caracter)) = 0 Then
gKeyAscii = 0
Else
gKeyAscii = Caracter
End If
Else
gKeyAscii = Caracter
End If
End Function
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

Perdon, este es el codigo

Publicado por nesti (29 intervenciones) el 03/08/2007 08:23:10
Sub Text1_Keypress(KeyAscii As Integer)
If KeyAscii > Asc("9") Then
'KeyAscii = 8 es el retroceso o BackSpace
If KeyAscii <> 8 Then
KeyAscii = 0
End If
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:Perdon, este es el codigo

Publicado por Edin (10 intervenciones) el 04/08/2007 01:58:43
No me funciono tu codigo nesti, gracias
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