none
Operaciones matematicas con un datagridview y textbox RRS feed

  • Pregunta

  • Buenas noches, disculpen estoy trabajando en este programa, en el datagridview muestro los datos desde una base de datos, al momento de escribir las cantidades va realizando operaciones y el total de esas operaciones las muestra en un textbox con el nombre total, qusiera que al momento de escribir en el textbox de perdidas y regalados me diera un total de eso y luego restarlo al textbox del total para asi mostralo en el textbox del gran total, pudieran ayudarme?

    jueves, 23 de junio de 2016 2:18

Respuestas

  • Victor Hernandez B,

    Lo que sucede es que el valor del objeto txtTotal no es un número, es una cadena ya que estás concatenando el símbolo de dólar al inicio del monto, por tanto el método TryParse() retorna 0.

    = (0 - (200 + 200)) = -400

    ¿Es posible dejar el valor del objeto txtTotal sin el símbolo de dólar?, el objetivo es que el valor sea numérico, el símbolo de dólar puedes concatenarlo a la etiqueta Total, algo como: Total $

    jueves, 23 de junio de 2016 4:56

Todas las respuestas

  • Victor Hernandez B,

    Puedes hacer uso del evento TextChanged() para cada objeto de tipo TextBox que interviene en el cálculo, aunque podría recomendarte que suscribas varios eventos TextChanged() en un único controlador de evento que le llamaremos Calcular_TextChanged():

    private void Form1_Load(object sender, EventArgs e)
            {
                txtRegalados.TextChanged += new System.EventHandler(this.Calcular_TextChanged);
                txtPerdidas.TextChanged += new System.EventHandler(this.Calcular_TextChanged);
                txtTotal.TextChanged += new System.EventHandler(this.Calcular_TextChanged);
            }

    El controlador de evento Calcular_TextChanged() se desencadenará cada vez que la propiedad Text -de cualquiera de los objetos de tipo Textbox que intervienen en el cálculo- cambien de valor

    private void Calcular_TextChanged(object sender, EventArgs e)
            {
                decimal valor;
    
                txtGranTotal.Text = ((decimal.TryParse(txtTotal.Text, out valor) ? valor : 0) - ((decimal.TryParse(txtRegalados.Text, out valor) ? valor : 0) + (decimal.TryParse(txtPerdidas.Text, out valor) ? valor : 0))).ToString("C2");
            }

    Nota que hago uso del método TryParse() para evitar excepciones por posibles problemas en el contenido de cada objeto de tipo Textbox. Al final se muestra el calculo en un formato de moneda.

    jueves, 23 de junio de 2016 3:14
  • lo estoy haciendo asi como dice pero me sale solo la operación que hago en txtRegalados y txtPerdidas y queda asi

    jueves, 23 de junio de 2016 4:44
  • Victor Hernandez B,

    Lo que sucede es que el valor del objeto txtTotal no es un número, es una cadena ya que estás concatenando el símbolo de dólar al inicio del monto, por tanto el método TryParse() retorna 0.

    = (0 - (200 + 200)) = -400

    ¿Es posible dejar el valor del objeto txtTotal sin el símbolo de dólar?, el objetivo es que el valor sea numérico, el símbolo de dólar puedes concatenarlo a la etiqueta Total, algo como: Total $

    jueves, 23 de junio de 2016 4:56
  • si lo solucione de hecho con eso, quite el símbolo $ del txt totaly funciono muy bien, muchas gracias y saludos !!
    jueves, 23 de junio de 2016 4:59