none
Porque al Borrar TextBox cuando quiero volver a sumar me sale mala la suma RRS feed

  • Pregunta

  • buenas noches amigos del foro

    mi consulta es la siguiente porque al borrar  y vuelvo a sumar me toma la suma anterior

    tengo en una linea Button1(Calcular_hr), Button2(Borrar_TextBox1),Label1,Label2,MasketTextBox1(Hora_Inicio),MasketTextBox2(Hora_Termino),CheckBox1(Si),CheckBox2(No)

    el mismo codigo tiene la segunda linea

    mas abajo tengo Button5(Calcular_La_suma_de_los_dos_TextBox ),Button6(Borrar_TextBox3_suma_total)

    este es el codigo amigos del foro

    Public Class Form1
        Dim Resultado As Double = 0
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Inicio As DateTime = MaskedTextBox1.Text
            Dim Final As DateTime = MaskedTextBox2.Text
            Dim Resul As TimeSpan = Final.Subtract(Inicio)
            TextBox1.Text = Resul.TotalHours.ToString()
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            MaskedTextBox1.Clear()
            MaskedTextBox2.Clear()
            TextBox1.Clear()
            MaskedTextBox1.Focus()
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim Inicio2 As DateTime = MaskedTextBox3.Text
            Dim Final2 As DateTime = MaskedTextBox4.Text
            Dim Resul2 As TimeSpan = Final2.Subtract(Inicio2)
            TextBox2.Text = Resul2.TotalHours.ToString()
    
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            MaskedTextBox3.Clear()
            MaskedTextBox4.Clear()
            TextBox2.Clear()
            MaskedTextBox3.Focus()
        End Sub
    
        Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
            If CheckBox1.Checked = True Then
                CheckBox2.Checked = False
                Button1.Visible = True
                Button2.Visible = True
                Label1.Visible = True
                Label2.Visible = True
                MaskedTextBox1.Visible = True
                MaskedTextBox2.Visible = True
                TextBox1.Visible = True
            End If
        End Sub
    
        Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
            If CheckBox2.Checked = True Then
                CheckBox1.Checked = False
                Button1.Visible = False
                Button2.Visible = False
                Label1.Visible = False
                Label2.Visible = False
                MaskedTextBox1.Visible = False
                MaskedTextBox2.Visible = False
                TextBox1.Visible = False
            End If
        End Sub
    
        Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
            If CheckBox3.Checked = True Then
                CheckBox4.Checked = False
                Button3.Visible = True
                Button4.Visible = True
                Label3.Visible = True
                Label4.Visible = True
                MaskedTextBox3.Visible = True
                MaskedTextBox4.Visible = True
                TextBox2.Visible = True
            End If
        End Sub
    
        Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
            If CheckBox4.Checked = True Then
                CheckBox3.Checked = False
                Button3.Visible = False
                Button4.Visible = False
                Label3.Visible = False
                Label4.Visible = False
                MaskedTextBox3.Visible = False
                MaskedTextBox4.Visible = False
                TextBox2.Visible = False
            End If
        End Sub
    
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Dim val1 As Double
            Double.TryParse(TextBox1.Text, val1)
    
            Dim val2 As Double
            Double.TryParse(TextBox2.Text, val2)
    
    
    
            If CheckBox1.Checked Then Resultado += val1
            If CheckBox3.Checked Then Resultado += val2
    
    
    
            TextBox3.Text = Resultado
    
        End Sub
    
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            TextBox3.Clear()
        End Sub
    End Class
    

     

    lunes, 24 de octubre de 2011 1:28

Respuestas

  • el tema es que estas acumulando el resultado en una variable declarada a nivel del formulario, por lo tanto nucna pierde el valor que va sumando

    si quiere evitar esto define la variable dentro del propio metodo

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

    Dim Resultado As Double = 0

     Dim val1 As Double Double.TryParse(TextBox1.Text, val1) Dim val2 As Double Double.TryParse(TextBox2.Text, val2) If CheckBox1.Checked Then Resultado += val1 If CheckBox3.Checked Then Resultado += val2 TextBox3.Text = CStr(Resultado) End Sub

     

    esto hara que la variable se defina cada vez que se ejecuta el evento

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta fox29 lunes, 24 de octubre de 2011 15:16
    lunes, 24 de octubre de 2011 2:40

Todas las respuestas

  • porque ocurre esto borro pero cuando vuelvo a sumar me toma la suma anterior

    que puedo hacer amigos no entiendo

    lunes, 24 de octubre de 2011 1:37
  • alguien me puede orientar que esta pasando

    esto es lo ultimo que me falta para terminar y estoy pillado hay

     

    lunes, 24 de octubre de 2011 1:51
  • hola fox29

    Te recomendaría que el codigo lo insertaras para que se pueda ver mejor y entender.

     Al lado del html tenes el boton insertar bloque de codigo y ahi elejis vb.net y pegas el codigo y le das en insertar asi es mas facil de entender.

     

     

    lunes, 24 de octubre de 2011 1:51
  • buenas noches 10Gox  ok

    aqui esta el codigo

    Public Class Form1
        Dim Resultado As Double = 0
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Inicio As DateTime = MaskedTextBox1.Text
            Dim Final As DateTime = MaskedTextBox2.Text
            Dim Resul As TimeSpan = Final.Subtract(Inicio)
            TextBox1.Text = Resul.TotalHours.ToString()
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            MaskedTextBox1.Clear()
            MaskedTextBox2.Clear()
            TextBox1.Clear()
            MaskedTextBox1.Focus()
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim Inicio2 As DateTime = MaskedTextBox3.Text
            Dim Final2 As DateTime = MaskedTextBox4.Text
            Dim Resul2 As TimeSpan = Final2.Subtract(Inicio2)
            TextBox2.Text = Resul2.TotalHours.ToString()
    
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            MaskedTextBox3.Clear()
            MaskedTextBox4.Clear()
            TextBox2.Clear()
            MaskedTextBox3.Focus()
        End Sub
    
        Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
            If CheckBox1.Checked = True Then
                CheckBox2.Checked = False
                Button1.Visible = True
                Button2.Visible = True
                Label1.Visible = True
                Label2.Visible = True
                MaskedTextBox1.Visible = True
                MaskedTextBox2.Visible = True
                TextBox1.Visible = True
            End If
        End Sub
    
        Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
            If CheckBox2.Checked = True Then
                CheckBox1.Checked = False
                Button1.Visible = False
                Button2.Visible = False
                Label1.Visible = False
                Label2.Visible = False
                MaskedTextBox1.Visible = False
                MaskedTextBox2.Visible = False
                TextBox1.Visible = False
            End If
        End Sub
    
        Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged
            If CheckBox3.Checked = True Then
                CheckBox4.Checked = False
                Button3.Visible = True
                Button4.Visible = True
                Label3.Visible = True
                Label4.Visible = True
                MaskedTextBox3.Visible = True
                MaskedTextBox4.Visible = True
                TextBox2.Visible = True
            End If
        End Sub
    
        Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged
            If CheckBox4.Checked = True Then
                CheckBox3.Checked = False
                Button3.Visible = False
                Button4.Visible = False
                Label3.Visible = False
                Label4.Visible = False
                MaskedTextBox3.Visible = False
                MaskedTextBox4.Visible = False
                TextBox2.Visible = False
            End If
        End Sub
    
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Dim val1 As Double
            Double.TryParse(TextBox1.Text, val1)
    
            Dim val2 As Double
            Double.TryParse(TextBox2.Text, val2)
    
    
    
            If CheckBox1.Checked Then Resultado += val1
            If CheckBox3.Checked Then Resultado += val2
    
    
    
            TextBox3.Text = Resultado
    
        End Sub
    
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            TextBox3.Clear()
        End Sub
    End Class
    

    lunes, 24 de octubre de 2011 1:56
  • bueno amigos del foro mañana continuo por hoy me la gano

    buenas noches a todos en el foro gracias

     

    amigos del foro estaba mirando el codigo

    y me surgio la pregunta sera que se esta almacenando el valor de la suma anterior

    en la variable Resultado si es asi como podria resolverlo

    bueno me voy mañana continuo gracias a todos

    • Editado fox29 lunes, 24 de octubre de 2011 2:30
    lunes, 24 de octubre de 2011 2:23
  • el tema es que estas acumulando el resultado en una variable declarada a nivel del formulario, por lo tanto nucna pierde el valor que va sumando

    si quiere evitar esto define la variable dentro del propio metodo

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

    Dim Resultado As Double = 0

     Dim val1 As Double Double.TryParse(TextBox1.Text, val1) Dim val2 As Double Double.TryParse(TextBox2.Text, val2) If CheckBox1.Checked Then Resultado += val1 If CheckBox3.Checked Then Resultado += val2 TextBox3.Text = CStr(Resultado) End Sub

     

    esto hara que la variable se defina cada vez que se ejecuta el evento

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta fox29 lunes, 24 de octubre de 2011 15:16
    lunes, 24 de octubre de 2011 2:40
  • buenas Tardes Leandro a entiendo

    dejame ver luego te respondo como me fue 

    gracias

    lunes, 24 de octubre de 2011 15:09
  • Muchas gracias Leandro me fue super bien

    hasta pronto amigos del foro

    lunes, 24 de octubre de 2011 15:16