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
Hola soy administrador de una red de blogs estuve visitando tu página http://wilfredo-patricio.blogspot.com/ y me pareció muy interesante. Me encantaría que pudiéramos intercambiar links y de esta forma ambos nos ayudamos a difundir nuestros páginas.
ResponderEliminarSi lo deseas no dudes en escribirme.
Exitos con tu blog.
saludos
Franck
contacto: rogernad08@gmail.com
me sirvio mucho!!! para el proyecto de analisis!!
ResponderEliminarHermano tremenda ayuda justo lo que necesitaba. muchisimas gracias
ResponderEliminarMuchas Gracias por la ayuda, muy prolijo el código. Justo lo que estaba necesitando!
ResponderEliminarGracias a tí por visitar el blog. y que bueno que te sirva.
ResponderEliminarSaludos cordiales
excelente post. gracias desde Honduras!
ResponderEliminarGracias a ti, por visitar el blog y me alegra que te haya ayudado. Saludos cordiales también para ti desde Perú.
EliminarGracias por la aportación...
ResponderEliminarGracias por tu aporte. Seria posible modificar el codigo, de tal manera, que fuera posible utilizar las dos ultimas cibras con decimales, despues del punto.
ResponderEliminarGracias,
Josep.
BUEN APORTE!! MUCHAS GRACIAS! SALUDOS DESDE HONDURAS
ResponderEliminarGracias por visitar el blog y disculpa por la demora en contestar.
Eliminargracias por tu aporte me salvaste de un examen saludos desde Bolivia
ResponderEliminarQue bueno que te haya servido, y gracias a ti por visitar el blog
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHola,
ResponderEliminarMuchas gracias por tu aporte, me sirvió de mucho, un aporte mas a tu código. Esto permite que captures el separador decimal del sistema.
/*
Dim sep as char
sep=Application.CurrentCulture.NumberFormat.NumberDecimalSeparator
*/
Solo quedaria cambiar "." por la variable sep.
Saludos.
Gracias por visitar el blog y gracias nuevamente por tu colaboración.
EliminarSaludos cordiales
Gracias por el post! Excelente:)
ResponderEliminarmuchas gracias lo estuve buscando y solo aquí lo pude encontrar SALUDES
ResponderEliminarGracias hermano....
ResponderEliminarMuchas Gracias, funciono!
ResponderEliminarQue bueno que te haya servidor mi estimado.
ResponderEliminarSaludos.
muy bueno el aporte, gracias
ResponderEliminarGracias por visitar el blog.
Eliminarno me sirvio pero gracias
ResponderEliminar