none
C# RRS feed

  • Pregunta

  • Ayuda, tengo que capturar 2 datos que están en un textbox cada  uno, son precio y cantidad

    el resultado de ellos lo tengo que mostrar en otro textbox pero sin usar botones, que salgan según voy poniendo los datos. 

    martes, 13 de mayo de 2014 16:46

Respuestas

  • Te puse el codigo en c#, ese error te debe dar porque una de las cajas de texto debe estar vacia y se dispara el evento en la primera.

    Prueba asi

     Public Sub Calcular(precio As Double, cantidad As Integer)
            Dim resultado As Double
            resultado = precio * cantidad
            lblResultado.Text = resultado.ToString
        End Sub
    
        Private Sub txtPrecio_TextChanged(sender As Object, e As EventArgs) Handles txtPrecio.TextChanged
            If Not String.IsNullOrEmpty(txtPrecio.Text) And Not String.IsNullOrEmpty(txtCantidad.Text) Then
                Calcular(CDbl(txtPrecio.Text), CInt(txtCantidad.Text))
            End If
        End Sub
    
        Private Sub txtCantidad_TextChanged(sender As Object, e As EventArgs) Handles txtCantidad.TextChanged
            If Not String.IsNullOrEmpty(txtCantidad.Text) And Not String.IsNullOrEmpty(txtPrecio.Text) Then
                Calcular(CDbl(txtPrecio.Text), CInt(txtCantidad.Text))
            End If
        End Sub

    lblResultado es un Label para mostrar el resultado.

    Sdos


    Martín Fabregues
    Córdoba, Argentina

    martes, 13 de mayo de 2014 17:21
  • no se si trabajas en c# o vb.net ya que el titulo dice c# y publicaste la pregunta en el foro de vb.net.

    En C# seria asi

     private void txtPrecio_TextChanged(object sender, EventArgs e)
            {
                if(!String.IsNullOrEmpty(txtPrecio.Text) && !String.IsNullOrEmpty(txtCantidad.Text))
                {
                    Calcular(Convert.ToDouble(txtPrecio.Text), Convert.ToInt32(txtCantidad.Text));
                }
            }
    
            private void txtCantidad_TextChanged(object sender, EventArgs e)
            {
                if (!String.IsNullOrEmpty(txtCantidad.Text) && !String.IsNullOrEmpty(txtPrecio.Text))
                {
                    Calcular(Convert.ToDouble(txtPrecio.Text), Convert.ToInt32(txtCantidad.Text));
                }
            }
    
            private void Calcular(Double precio, int cantidad)
            {
                double resultado = precio * cantidad;
                lblResultado.Text = resultado.ToString();
            }

    Sdos


    Martín Fabregues
    Córdoba, Argentina

    martes, 13 de mayo de 2014 17:31

Todas las respuestas

  • hola

    puedes trabajar con el evento de los textbox.

    Control.TextChanged (Evento)

    Y crear una función para calcular

    private void Calcular()
    {
       double resultado = Convert.ToDouble(TextBox1.Text) * Convert.ToDouble(TextBox2.Text);
       TextBox3.Text = resultado.ToString();
    }

    En el evento de cada textbox llamas a la función.

    Sdos


    Martín Fabregues
    Córdoba, Argentina

    martes, 13 de mayo de 2014 16:53
  • me sale el siguiente error:
    "La cadena de entrada no tiene el formato correcto."

    martes, 13 de mayo de 2014 17:11
  • Te puse el codigo en c#, ese error te debe dar porque una de las cajas de texto debe estar vacia y se dispara el evento en la primera.

    Prueba asi

     Public Sub Calcular(precio As Double, cantidad As Integer)
            Dim resultado As Double
            resultado = precio * cantidad
            lblResultado.Text = resultado.ToString
        End Sub
    
        Private Sub txtPrecio_TextChanged(sender As Object, e As EventArgs) Handles txtPrecio.TextChanged
            If Not String.IsNullOrEmpty(txtPrecio.Text) And Not String.IsNullOrEmpty(txtCantidad.Text) Then
                Calcular(CDbl(txtPrecio.Text), CInt(txtCantidad.Text))
            End If
        End Sub
    
        Private Sub txtCantidad_TextChanged(sender As Object, e As EventArgs) Handles txtCantidad.TextChanged
            If Not String.IsNullOrEmpty(txtCantidad.Text) And Not String.IsNullOrEmpty(txtPrecio.Text) Then
                Calcular(CDbl(txtPrecio.Text), CInt(txtCantidad.Text))
            End If
        End Sub

    lblResultado es un Label para mostrar el resultado.

    Sdos


    Martín Fabregues
    Córdoba, Argentina

    martes, 13 de mayo de 2014 17:21
  • Gracias ya me salio, si uso estoy en lenguaje C# recién estoy empezando.
    martes, 13 de mayo de 2014 17:28
  • no se si trabajas en c# o vb.net ya que el titulo dice c# y publicaste la pregunta en el foro de vb.net.

    En C# seria asi

     private void txtPrecio_TextChanged(object sender, EventArgs e)
            {
                if(!String.IsNullOrEmpty(txtPrecio.Text) && !String.IsNullOrEmpty(txtCantidad.Text))
                {
                    Calcular(Convert.ToDouble(txtPrecio.Text), Convert.ToInt32(txtCantidad.Text));
                }
            }
    
            private void txtCantidad_TextChanged(object sender, EventArgs e)
            {
                if (!String.IsNullOrEmpty(txtCantidad.Text) && !String.IsNullOrEmpty(txtPrecio.Text))
                {
                    Calcular(Convert.ToDouble(txtPrecio.Text), Convert.ToInt32(txtCantidad.Text));
                }
            }
    
            private void Calcular(Double precio, int cantidad)
            {
                double resultado = precio * cantidad;
                lblResultado.Text = resultado.ToString();
            }

    Sdos


    Martín Fabregues
    Córdoba, Argentina

    martes, 13 de mayo de 2014 17:31