Visual Basic.NET - ¿Como valido txtbox solo numeros decimales y neg?

 
Vista:

¿Como valido txtbox solo numeros decimales y neg?

Publicado por Abraham (3 intervenciones) el 06/06/2009 17:47:08
Hola, quiero saber como validar un textbox que solo acepte numeros decimales y enteros, tanto positivos como negativos, apenas tengo este codigo que solo valida que sean numeros enteros:

1
2
3
4
5
6
7
8
9
Private Sub txtBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtBox.KeyPress
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
End Sub


vb.net 2008... les estare muy agradecido por su ayuda =)
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
Imágen de perfil de Ariadna

¿Como valido txtbox solo numeros decimales y neg?

Publicado por Ariadna (1 intervención) el 07/02/2015 10:02:37
+

Hola. Estaba buscando esto y no lo encontré, pero vine con esta solución:
(un poco tarde, 5 años después! jaja)


Primero crear un función para la verificación y luego hacer un select case para elegir los casos en los que si se escriba en el text box (lo cual es fácil porque solo son números, el punto y el menos).
Y agregar un if para que se verifique si ya se ha ingresado un punto antes (para que no se pueda poner mas de uno)


Espero que les sirva.

(hay que primero Dim punto as boolean)
En mi caso el text box se llama resbox

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
 
    Select Case e.KeyChar
        Case "."
            If punto = False Then
                punto = True
            e.Handled = False
        Else
            e.Handled = True
        End If
    Case "-"
        e.Handled = False
    Case "1"
        e.Handled = False
 
        Case "2"
        e.Handled = False
 
        Case "3"
        e.Handled = False
 
        Case "4"
        e.Handled = False
 
        Case "5"
        e.Handled = False
 
        Case "6"
        e.Handled = False
 
        Case "7"
        e.Handled = False
 
        Case "8"
        e.Handled = False
 
        Case "9"
        e.Handled = False
 
        Case Else
        e.Handled = True
 
    End Select
 
 
 
End Sub
 
Private Sub resbox_KeyPress(sender As Object, e As KeyPressEventArgs) Handles resbox.KeyPress
    solonumeros(e)
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
1
Comentar

Solo numeros y decimales en una textbox

Publicado por Sebastian Alonso (4 intervenciones) el 10/12/2023 21:33:26
Este codigo puede servirte para decimales y ademas de poder bloquear la entrada de texto

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles
TextBox1.KeyPress
 If (Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "."c AndAlso e.KeyChar
<> ControlChars.Back) Then
 e.Handled = True
 End If
 If e.KeyChar = "."c AndAlso TextBox1.Text.Contains(".") Then
 e.Handled = True
 End If
 If e.KeyChar = "0"c AndAlso TextBox1.Text = "0" Then
 e.Handled = True
 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