Limpiar programa

Iniciado por luis456, 20 Marzo 2015, 16:16 PM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Hola de nuevo por estos lares :) se que mi amigo Elecktro se preguntaria por mi jejje

Bueno os cuento a medida que avanzo con mas variables en mi programa me surge un problema  si hago las primeras operaciones me salen las cuentas bien,pero la siguiente ves que vuelvo a calcular me encuentro que las cuentas son otras diferentes yo creo que aunque uso un codigo me quedan todas las variables cargadas con el primer calculo y solo borro son los texboxes, esto se corrige cuando cierro el editor y vuelvo a abrir el programa
no se como limpiar las variables sin tener que cerrar todo y empezar de nuevo ;(


Código (vbnet) [Seleccionar]
 Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       For Each obj As Control In Me.Controls
           If (TypeOf obj Is TextBox) Then
               obj.Text = ""
           End If
           If (TypeOf obj Is GroupBox) Then
               For Each caja As Control In obj.Controls
                   If (TypeOf caja Is TextBox) Then
                       caja.Text = ""
                   End If
               Next
           End If
           ListBox1.Items.Clear()
           ListBox2.Items.Clear()
           ListBox3.Items.Clear()
           ListBox7.Items.Clear()

       Next
   End Sub



Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#1
Es lo que ocurre cuando tienes 100 membros en un mismo código con nombres casi identicos, te lo he dicho mil veces, tanto "resultsss" es un completo lio :-/

Tienes que hacerlo cómo lo estás haciendo, solo que debes fijarte mejor para añadir los controles que falten ya que supuestamente te estás olvidando de limpiar algún control, y por si acaso te diría que añadieses también los objetos públicos que hayas inicializado fuera de los Subs para resetear sus valores.

Ejemplo:
Código (vbnet) [Seleccionar]
   Private Sub Button2_Click_1(ByVal sender As Object, ByVal e As EventArgs) _
   Handles Button2.Click

       Me.CleanUp()

   End Sub

   Private Sub CleanUp()

       ' Tus famosos results y otras variables públicas, cómo se llamen:
       Me.Resultss1 = Nothing
       Me.Resultss2 = Nothing
       Me.Resultss3 = Nothing
       Me.VariableInteger = 0
       'etc...

       ' Tus controles:
       For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
           tb.Clear()
       Next tb
       For Each gb As GroupBox In Me.Controls.OfType(Of GroupBox)()
           For Each tb As TextBox In gb.Controls
               tb.Clear()
           Next
       Next gb
       Me.ListBox1.Items.Clear()
       Me.ListBox2.Items.Clear()
       Me.ListBox3.Items.Clear()
       Me.ListBox7.Items.Clear()

   End Sub


Poco más se puede hacer por ayudarte en eso, debes revisarlo tú :P








luis456

Cita de: Eleкtro en 20 Marzo 2015, 16:39 PM
Es lo que ocurre cuando tienes 100 membros en un mismo código con nombres casi identicos, te lo he dicho mil veces, tanto "resultsss" es un completo lio :-/

Tienes que hacerlo cómo lo estás haciendo, solo que debes fijarte mejor para añadir los controles que falten ya que supuestamente te estás olvidando de limpiar algún control, y por si acaso te diría que añadieses también los objetos públicos que hayas inicializado fuera de los Subs para resetear sus valores.

Ejemplo:
Código (vbnet) [Seleccionar]
   Private Sub Button2_Click_1(ByVal sender As Object, ByVal e As EventArgs) _
   Handles Button2.Click

       Me.CleanUp()

   End Sub

   Private Sub CleanUp()

       ' Tus famosos results y otras variables públicas, cómo se llamen:
       Me.Resultss1 = Nothing
       Me.Resultss2 = Nothing
       Me.Resultss3 = Nothing
       Me.VariableInteger = 0
       'etc...

       ' Tus controles:
       For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
           tb.Clear()
       Next tb
       For Each gb As GroupBox In Me.Controls.OfType(Of GroupBox)()
           For Each tb As TextBox In gb.Controls
               tb.Clear()
           Next
       Next gb
       Me.ListBox1.Items.Clear()
       Me.ListBox2.Items.Clear()
       Me.ListBox3.Items.Clear()
       Me.ListBox7.Items.Clear()

   End Sub


Poco más se puede hacer por ayudarte en eso, debes revisarlo tú :P


Muchas veces temo preguntar, por los regaños tuyos :)

gracias elektro :)

Luis




Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

Ostias     me pateo el ordenador jejejj , es broma con los controles no hay problemas pero con las variables me sale este error


"resultss3' no es un miembro de 'WindowsApplication1.Form1'.

Npi

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#4
Cita de: luis456 en 20 Marzo 2015, 17:14 PM"resultss3' no es un miembro de 'WindowsApplication1.Form1'.

Por qué resultss3 no es pública, es un miembro inaccesible ya que la declaras DENTRO de un Sub y su tiempo de vida es solo ese.

Resetea las que declares FUERA de los Subs.

Saludos!








luis456

Cita de: Eleкtro en 20 Marzo 2015, 17:26 PM
Por qué resultss3 no es pública, es un miembro inaccesible ya que la declaras DENTRO de un Sub y su tiempo de vida es solo ese.

Resetea las que declares FUERA de los Subs.

Saludos!

Perfecto profesor :) otra cosa que aprendi con esta programacion gracias a ti

hasta otra :)

Luis
Que tu sabiduria no sea motivo de Humillacion para los demas