Diego, perdoname la re-pregunta, no entiendo cómo lo solucionaste, ¿fue 
utilizando el NumericTextbox que extiende de Textbox que aportó Marcelo más tu 
configuración de Cutlure?

 

Gracias,

 

Cristian.

 

De: [email protected] [mailto:[email protected]] En nombre de Diego Spinedi
Enviado el: martes, 09 de diciembre de 2014 07:50
Para: [email protected]
Asunto: [puntonet] Consulta

 

Listeros: buenos dias. Queria agradecer los aportes que me han realizado para 
poder solucionar el problema. Finalmente (creo) haberlo resuelto con la clase 
System.Globalization definiendo la cultura de mi aplicación. Me dió bastante 
trabajo pero creo que funcionaron todos los casos...de todas maneras mi usuario 
será quien me de la última palabra,....

Gracias a todos!!!

Saludos

Diego

 

El 5 de diciembre de 2014, 15:00, Diego Spinedi <[email protected] 
<mailto:[email protected]> > escribió:

Muy amable Marcelo! gracias !

Lo voy a probar y luego te aviso como me fue!

 

El 5 de diciembre de 2014, 14:43, Marcelo Abosch <[email protected] 
<mailto:[email protected]> > escribió:

Hace mucho hice esta clase fijate si te sirve

 

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Globalization;

 

namespace App

{

    public class NumericTextBox : TextBox

    {

        bool allowSpace = false;

 

        public NumericTextBox()

        {

            this.TextAlign = HorizontalAlignment.Right;

        }

 

        protected override void OnLeave(EventArgs e)

        {

            base.OnLeave(e);

            if (!string.IsNullOrWhiteSpace(this.Text))

            {

                this.Text = decimal.Parse(this.Text).ToString("0.00");

            }

        }

 

        protected override void OnTextChanged(EventArgs e)

        {

            

            NumberFormatInfo numberFormatInfo = 
System.Globalization.CultureInfo.CurrentCulture.NumberFormat;

            string decimalSeparator = numberFormatInfo.NumberDecimalSeparator;

            if (this.Text.IndexOf(decimalSeparator) > -1)

            {

                var decimals = 
this.Text.Substring(this.Text.IndexOf(decimalSeparator)+1);

                if (decimals.Length > 2)

                {

 

                    this.Text = this.Text.Substring(0, this.Text.Length - 1);

                    this.SelectionStart = this.Text.Length;

                    this.SelectionLength = 0;

                }

            }

            base.OnTextChanged(e);

 

 

        }

 

 

        protected override void OnKeyPress(KeyPressEventArgs e)

        {

            base.OnKeyPress(e);

 

            NumberFormatInfo numberFormatInfo = 
System.Globalization.CultureInfo.CurrentCulture.NumberFormat;

            string decimalSeparator = numberFormatInfo.NumberDecimalSeparator;

            string groupSeparator = numberFormatInfo.NumberGroupSeparator;

            string negativeSign = numberFormatInfo.NegativeSign;

 

            string keyInput = e.KeyChar.ToString();

 

            if (Char.IsDigit(e.KeyChar))

            {

                // Digitos  OK

            }

            else if (keyInput.Equals(decimalSeparator))

            {

                // Decimal separator  OK

            }

            else if (e.KeyChar == '\b')

            {

                 // Backspace  OK

            }

            else if (this.allowSpace && e.KeyChar == ' ')

            {

 

            }

            else

            {

                e.Handled = true;

            }

        }

 

        public int IntValue

        {

            get

            {

                return Int32.Parse(this.Text);

            }

        }

 

        public decimal DecimalValue

        {

            get

            {

                if (string.IsNullOrWhiteSpace(this.Text))

                {

                    return Decimal.Parse("0");

                }

                else

                {

                    return Decimal.Parse(this.Text);

                }

            }

        }

 

        public bool AllowSpace

        {

            set

            {

                this.allowSpace = value;

            }

 

            get

            {

                return this.allowSpace;

            }

        }

    }

}

 

 

 

From: [email protected] <mailto:[email protected]>  
[mailto:[email protected] <mailto:[email protected]> ] On Behalf Of Diego 
Spinedi
Sent: Friday, December 05, 2014 2:28 PM
To: [email protected] <mailto:[email protected]> 
Subject: [puntonet] Consulta

 

Excatamente lo que acabas de definir. Deberia ser un textbox que acepte 
decimales, las teclas de  cursor+borrado+suprimir+enter+punto  y que convierta 
el punto  en coma.

 

El 5 de diciembre de 2014, 14:21, Pablo Marzullo <[email protected] 
<mailto:[email protected]> > escribió:

Hola Diego, pasa mas detalles... el control sobre el que queres validar es un 
Textbox? que queres que valide? que solo tome números, acepte las teclas del 
cursor+borrado+suprimir+enter+punto (y que cuando presionas coma lo convierta a 
punto o la inversa) es eso??

 

Saludos, Pablo

 

IAV Tech

Mendoza 246, (1838) Luis Guillon, Bs As, Argentina

www.iav-tech.com <http://www.iav-tech.com> 

Cel.: 011-1566721644

 

---- Original Message ----
From: Diego Spinedi <[email protected] <mailto:[email protected]> >
To: [email protected] <mailto:[email protected]> 
Sent: Vie, Dic 5, 2014, 2:15 PM
Subject: [puntonet] Consulta

Estoy desarrollando en winforms..

Gracias!!!

 

El 5 de diciembre de 2014, 9:40, Leandro Halfon <[email protected] 
<mailto:[email protected]> > escribió:

Diego,

 

¿Estas en entorno web o winforms?

 

2014-12-05 9:33 GMT-03:00 Diego Spinedi <[email protected] 
<mailto:[email protected]> >:

Listeros: Estoy armando una aplicación de facturación y me encuentro con el 
inconveniente de que no encuentro un control adecuado para los importes. Lo 
termine haciendo con los text...pero alguien tiene alguna recomendación sobre 
algun control que no me genere dolores de cabeza con los formatos y 
validaciones????

 

Gracias!!!


 

-- 

Diego Spinedi

 





 

-- 

Diego Spinedi





 

-- 

Diego Spinedi





 

-- 

Diego Spinedi





 

-- 

Diego Spinedi

  _____  

Se certificó que el correo no contiene virus.
Comprobada por AVG - www.avg.es <http://www.avg.es> 
Versión: 2015.0.5577 / Base de datos de virus: 4235/8701 - Fecha de la versión: 
08/12/2014

Responder a