none
Sumar 3 textBox y que en el 4 textbox me salga el monto total (sin boton para ejecutar) RRS feed

  • Pregunta

  • Buen dia expertos, estoy desarrollando en vb.net 2012

    Estoy haciendo una suma te 3 campos textbox (el txtsubtotal.text = es la suma de un datagridview, sin embargo el txtflete.text y txtseguro.text son textos que se tiene que ingresar un valor ya que estan en cero

     Sub TotalGeneral()
            Dim subtotal As Decimal
            Dim flete As Decimal
            Dim seguro As Decimal
            Dim total As Decimal
            subtotal = txtSubTotal.Text
            flete = txtFlete.Text
            seguro = txtSeguro.Text

            total = (subtotal + flete + seguro)
            Me.txtTotal.Text = Format(total, "####0.0000")
            Me.txtFlete.Text = Format(flete, "####0.0000")
            Me.txtSeguro.Text = Format(seguro, "####0.0000")
        End Sub

    Entonces eso queda de esta forma(como la imagen):

    ahora en el txtflete.text realizo este codigo en el evento "KeyDown" :

    Private Sub txtFlete_KeyDown(sender As Object, e As KeyEventArgs) Handles txtFlete.KeyDown
            If e.KeyCode = Keys.Enter Then
                Try
                    Call TotalGeneral()
                Catch ex As NullReferenceException
                    MessageBox.Show("ERROR NO ESTIXTE LA RAZON SOCIAL")
                End Try
            End If
        End Sub

    Lo que realiza este codigo es que si al ingresar un numero en flete y le doy "enter" me suma, aunque esto es lo que no quiero presionar un enter sino simplemente al digitar sin presionar enter me pueda sumar, si alguien por ahi me podria ayudar con la logica o el evento el cual se pueda generar de una mejor forma gracias

    martes, 5 de febrero de 2019 20:19

Todas las respuestas

  • Hola  mario gr

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que estaremos realizando una revisión a profundidad acerca del inconveniente que se te está presentando.

    Proporcionaremos una respuesta lo más pronto posible.

    Gracias por usar los foros de MSDN.

    Pedro Alfaro
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    martes, 5 de febrero de 2019 20:40
    Moderador
  • Hola buenos dias en tu caso es simple solo llama tu metodo TotalGeneral detro del evento KeyUp por ejemplo 
     Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
            Try
                Call TotalGeneral()
            Catch ex As NullReferenceException
                MessageBox.Show("ERROR NO ESTIXTE LA RAZON SOCIAL")
            End Try
        End Sub

    miércoles, 6 de febrero de 2019 13:34
  • Hola amigo, creo que la mejor opcion es como tienes tu codigo o el evento Leave . Porque quieres realizar al ir ingresando los datos ?? por cada pulsación del teclado se estaría ejecutando el Método y si borras lo mismo. 
    Ej: Si ingresar 1.000.000 que son 7 dígitos y volves a borras . Tu Método se ejecutara 14 veces y a eso sumale el nuevo registro que vas a ingresar.

    Evento LEAVE (Se ejeccuta al salir del foco - TAB o ENTER)

    Private Sub txtFlete_KeyDown(sender As Object, e As KeyEventArgs) Handles txtFlete.KeyDown
            If e.KeyCode = Keys.Enter Then
                Try
                    Call TotalGeneral()
                Catch ex As NullReferenceException
                    MessageBox.Show("ERROR NO ESTIXTE LA RAZON SOCIAL")
                End Try
            End If
        End Sub
    
    
    Private Sub txtFlete_Leave(sender As Object, e As KeyEventArgs) Handles txtFlete.KeyDown
    
                Try
                    Call TotalGeneral()
                Catch ex As NullReferenceException
                    MessageBox.Show("ERROR NO ESTIXTE LA RAZON SOCIAL")
                End Try
    
        End Sub

    Bader Molinas

    Paraguay



    miércoles, 6 de febrero de 2019 14:35
  • buen dia DANTE-3D, el  evento del "TextBox1_KeyUp" me sale un error porque cuando digito un numero me sale 1 despues escribo el otro que seria 4 y en ves que me salga 14   me sale 41 y como la operacion es en decimal peor si le pongo un punto me sale .41
    viernes, 8 de febrero de 2019 15:59
  • pones tu código en el evento TextChanged del textbox para que cada ves que ingreses un valor te lo sume 
    sábado, 9 de febrero de 2019 9:39