sábado, 20 de marzo de 2010

TextBox Solo Números con Punto Decimal en .NET

Bien, se que hay muchos ejemplos en la red de cómo hacer esto, pero uno mas no viene mal.

Bueno esto es un procedimiento Sub, que lo podemos poner en un modulo de nuestro proyecto y evitarnos validar todo el código en cada textbox, por supuesto que se puede mejorar mucho mas, pero de momento lo dejo así

Public Sub NumConFrac(ByVal CajaTexto As Windows.Forms.TextBox, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
       ElseIf e.KeyChar = "." And Not CajaTexto.Text.IndexOf(".") Then
            e.Handled = True
        ElseIf e.KeyChar = "." Then
            e.Handled = False
       Else
            e.Handled = True
       End If
  End Sub

Eso es todo el sub

Ahora para llamarlo desde cualquier Textbox que necesitemos ingresar solo números, para lo cual solo agregaríamos la siguiente línea:

Private Sub TxtImporte_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtImporte.KeyPress
        NumConFrac(Me.TxtImporte, e)
End Sub

 

Posteriormente si quieren visualizar el importe formateado, solo quedaría agregar lo siguiente luego pulsar ENTER

Me.TxtImporte.Text = Format(CDec(Me.TxtImporte.Text), "###,###.00")

 

Espero les sirva de algo

Hasta la próxima

2 comentarios:

  1. me sirvio mucho!!! para el proyecto de analisis!!

    ResponderEliminar
  2. Hermano tremenda ayuda justo lo que necesitaba. muchisimas gracias

    ResponderEliminar