Visual Basic.NET - Mejorar una función

   
Vista:

Mejorar una función

Publicado por Javier (22 intervenciones) el 17/04/2015 19:37:50
Buenos días gente:

Tengo una función que me permite solo meter datos numéricos en un TextBox y quería saber si me pueden ayudar a mejorarla para que el programa no se me haga tan grande.

Por ejemplo este código lo tengo que repetir constantemente cada vez que tengo que validar un campo:

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub T6_KeyUp(sender As Object, e As KeyEventArgs) Handles T6.KeyUp
        Funciones.ValidarCampoDecimal(sender)
    End Sub
    Private Sub T7_KeyUp(sender As Object, e As KeyEventArgs) Handles T7.KeyUp
        Funciones.ValidarCampoDecimal(sender)
    End Sub
    Private Sub T8_KeyUp(sender As Object, e As KeyEventArgs) Handles T8.KeyUp
        Funciones.ValidarCampoDecimal(sender)
    End Sub
    Private Sub T9_KeyUp(sender As Object, e As KeyEventArgs) Handles T9.KeyUp
        Funciones.ValidarCampoDecimal(sender)
    End Sub

Esta es la función:

1
2
3
4
5
6
7
8
9
10
Public Shared Function ValidarCampoDecimal(CajaDeTexto As TextBox) As Boolean
        Try
            Dim d As Decimal = Convert.ToDecimal(CajaDeTexto.Text)
            Return True
        Catch ex As Exception
            CajaDeTexto.Text = "0"
            CajaDeTexto.Select(0, CajaDeTexto.Text.Length)
            Return False
        End Try
    End Function

Saludos y gracias de antemano!!!
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

Mejorar una función

Publicado por Miguel (346 intervenciones) el 18/04/2015 01:18:53
Hola, te recomiendo que uses el control "NumericUpDown". Lo puedes configurar para aceptar números dentro de un rango, y la cantidad de decimales que necesites.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Mejorar una función

Publicado por Javier (22 intervenciones) el 23/04/2015 18:53:19
Muchas gracias Miguel, me sirvió mucho tu ayuda. Saludos!!!
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

Mejorar una función

Publicado por Horroroso (46 intervenciones) el 21/04/2015 15:54:53
Sencillo:
1
2
3
Private Sub T_KeyUp(sender As Object, e As KeyEventArgs) Handles T6.KeyUp, T7.KeyUp, T8.KeyUp, T6.KeyUp
        Funciones.ValidarCampoDecimal(sender)
    End Sub

Con eso bastará. Solo tienes que añadir todos los eventos que deseas manejar separados con coma.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Mejorar una función

Publicado por Javier (22 intervenciones) el 23/04/2015 18:53:51
Muchas gracias por tu valiosa ayuda
Me sirvió mucho!!!
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

Mejorar una función

Publicado por Khristtian (17 intervenciones) el 24/04/2015 14:28:18
Crea tu propio control, así no llamas todas esas veces al código y puedes limitar el ingreso a solo números, el punto o coma decimal; y su no hay decimales, darle formato con 2 ceros, etc.
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