none
Como hacer para que los números se separen por coma donde corresponda, automáticamente sea digitado sin Masktextbox. RRS feed

  • Pregunta

  • Hola, estoy haciendo un formulario de facturación y el problema es que quiero que cuando me haga los cálculos, el número resultante este separado por una coma(,) donde corresponda, sin necesidad de estar poniéndosela manualmente. Osea si en el Textbox escribo 123... cuando valla a escribir el siguiente dígito se agregue una coma osea, cada tres números se agregue una coma a la izquierda. No se puede con Masktextbox porque los números varían, no siempre quiero que lleve coma. 

    Gracias!


    Renzo Rivera

    • Cambiado Enrique M. Montejo martes, 12 de julio de 2016 7:07 Pregunta relacionada con controles de Windows Forms.
    viernes, 8 de julio de 2016 14:57

Respuestas

  • Yo siempre lo eh hecho asi

    TextBox1.Text = Format(CType(TextBox1.Text, Decimal), "$#,##0.00")

    • Propuesto como respuesta Laura Ceglz lunes, 11 de julio de 2016 21:45
    • Marcado como respuesta Renzo19 miércoles, 13 de julio de 2016 16:53
    viernes, 8 de julio de 2016 18:09
  • Hola Renzo:

     Lo que yo te sugeriria si es que no quieres quebrarte la cabeza con algo que muchos ya han resuelto es que utilices controles de terceros, como el recomendado por Pedro Avila.

     Para poder utilizarlo sigue estos pasos:

    1. Baja el archivo comprimido

    2. Dentro del archivo busca una carpeta llamada Lib

    3. Dentro ubica la Dll el cual deberas de importar en tu proyecto

    ¿Como importar una libreria?

    1. Dentro de la ToolBox de Visual Studio, has click derecho y selecciona Elegir Elementos 

    2. Dentro del cuandro de dialogo mostrado ubica el boton "Examinar" y luego dirigite a la carpeta "lib" del proyecto descargado.

    3. Selecciona la libreria llamada "GlobalTech.TextBoxControl.dll" y presiona Aceptar

    4. Despues de terminar de cargar, podras ver en la toolbox un nuevo control, este es que deberas de arrastrar a tu formulario.

    Para poder utilizarlo

    1. Click derecho sobre el control arrastrado dentro del formulario

    2. Selecciona Propiedades

    3. Selecciona Numeric

    este control ya esta configurado para hacer esto que deseas.

    Espero te haya servido la explicación de lo que debes de hacer....Si esto es así la respuesta correcta entonces seria la de Pedro avila


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Renzo19 miércoles, 13 de julio de 2016 16:53
    domingo, 10 de julio de 2016 15:51
  • Hola

    He creado un control personalizado que te pone la coma y el punto decimal también valida letras, números, alfanumericos. ValidationTextBox

    Tienes que agregar la libreria que esta en la carpeta lib a tu proyecto, para que te valide decimales en propiedades del textbox escoges Numeric. 


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    • Editado Pedro Ávila viernes, 8 de julio de 2016 22:23 ......
    • Marcado como respuesta Renzo19 miércoles, 13 de julio de 2016 16:53
    viernes, 8 de julio de 2016 22:20

Todas las respuestas

  • Renzo19,

    Mencionas que deseas formatear un valor resultante -que entiendo se muestra en un objeto de tipo TextBox-, y luego comentas que quieres que el formateo se haga en tanto el usuario escribe sobre el objeto de tipo Textbox, no tengo claro lo que deseas.

    En cualquier caso, lo que necesitas es formatear el valor considerando la coma como separador de millares y el punto como separador decimal, para ello -en tanto tu configuración regional no lo permita- podemos dar el formato haciendo uso de la cultura ("en-US"), fíjate:

    TextBox1.Text = Convert.ToDouble(TextBox1.Text).ToString("N", CultureInfo.CreateSpecificCulture("en-US"))

    En caso sea necesario que tanto el separador de millares como el separador de decimal se pinte mientras el usuario escribe el valor, te recomiendo que lo hagas cuando el valor ha sido digitado completamente y el usuario a abandonado el ingreso, para ello puedes hacer uso del evento Leave

    Private Sub TextBox1_Leave(sender As Object, e As EventArgs)
      TextBox1.Text = Convert.ToDouble(TextBox1.Text).ToString("N", CultureInfo.CreateSpecificCulture("en-US"))
    End Sub

    viernes, 8 de julio de 2016 16:28
  • Yo siempre lo eh hecho asi

    TextBox1.Text = Format(CType(TextBox1.Text, Decimal), "$#,##0.00")

    • Propuesto como respuesta Laura Ceglz lunes, 11 de julio de 2016 21:45
    • Marcado como respuesta Renzo19 miércoles, 13 de julio de 2016 16:53
    viernes, 8 de julio de 2016 18:09
  • Hola

    He creado un control personalizado que te pone la coma y el punto decimal también valida letras, números, alfanumericos. ValidationTextBox

    Tienes que agregar la libreria que esta en la carpeta lib a tu proyecto, para que te valide decimales en propiedades del textbox escoges Numeric. 


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    • Editado Pedro Ávila viernes, 8 de julio de 2016 22:23 ......
    • Marcado como respuesta Renzo19 miércoles, 13 de julio de 2016 16:53
    viernes, 8 de julio de 2016 22:20
  • Pedro, Copie y pegue la carpeta lib a mi proyecto pero no funciono, si esta no es la manera de "Agregar la librería a mi proyecto" cual es? y cual es esa propiedad donde tengo que señalar decimales? 

    Renzo Rivera

    domingo, 10 de julio de 2016 13:59
  • RHCRD Me funciono mucho pero aparte de esa forma quisiera que tan pronto yo valla escribiendo me valla colocando las comas donde corresponda, osea 123... y el siguiente numero que digíte, se le agregue una coma automáticamente en el 1,234... y así sucesivamente.

    Gracias


    Renzo Rivera

    domingo, 10 de julio de 2016 14:02
  • Willams el codigo me da un error en la palabra CultureInfo que no esta declarado.

    básicamente  quisiera que tan pronto yo valla escribiendo me valla colocando las comas donde corresponda, osea 123... y el siguiente número que digíte, se le agregue una coma automáticamente en el 1,234... y así sucesivamente.

    Gracias


    Renzo Rivera

    domingo, 10 de julio de 2016 14:11
  • Hola Renzo:

     Lo que yo te sugeriria si es que no quieres quebrarte la cabeza con algo que muchos ya han resuelto es que utilices controles de terceros, como el recomendado por Pedro Avila.

     Para poder utilizarlo sigue estos pasos:

    1. Baja el archivo comprimido

    2. Dentro del archivo busca una carpeta llamada Lib

    3. Dentro ubica la Dll el cual deberas de importar en tu proyecto

    ¿Como importar una libreria?

    1. Dentro de la ToolBox de Visual Studio, has click derecho y selecciona Elegir Elementos 

    2. Dentro del cuandro de dialogo mostrado ubica el boton "Examinar" y luego dirigite a la carpeta "lib" del proyecto descargado.

    3. Selecciona la libreria llamada "GlobalTech.TextBoxControl.dll" y presiona Aceptar

    4. Despues de terminar de cargar, podras ver en la toolbox un nuevo control, este es que deberas de arrastrar a tu formulario.

    Para poder utilizarlo

    1. Click derecho sobre el control arrastrado dentro del formulario

    2. Selecciona Propiedades

    3. Selecciona Numeric

    este control ya esta configurado para hacer esto que deseas.

    Espero te haya servido la explicación de lo que debes de hacer....Si esto es así la respuesta correcta entonces seria la de Pedro avila


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Renzo19 miércoles, 13 de julio de 2016 16:53
    domingo, 10 de julio de 2016 15:51
  • Gracias, me ayudo mucho.

    Renzo Rivera

    miércoles, 13 de julio de 2016 16:53