Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 20 Marzo 2015, 16:16 pm



Título: Limpiar programa
Publicado por: luis456 en 20 Marzo 2015, 16:16 pm
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
  1.  Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.        For Each obj As Control In Me.Controls
  3.            If (TypeOf obj Is TextBox) Then
  4.                obj.Text = ""
  5.            End If
  6.            If (TypeOf obj Is GroupBox) Then
  7.                For Each caja As Control In obj.Controls
  8.                    If (TypeOf caja Is TextBox) Then
  9.                        caja.Text = ""
  10.                    End If
  11.                Next
  12.            End If
  13.            ListBox1.Items.Clear()
  14.            ListBox2.Items.Clear()
  15.            ListBox3.Items.Clear()
  16.            ListBox7.Items.Clear()
  17.  
  18.        Next
  19.    End Sub


Luis


Título: Re: Limpiar programa
Publicado por: 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
  1.    Private Sub Button2_Click_1(ByVal sender As Object, ByVal e As EventArgs) _
  2.    Handles Button2.Click
  3.  
  4.        Me.CleanUp()
  5.  
  6.    End Sub
  7.  
  8.    Private Sub CleanUp()
  9.  
  10.        ' Tus famosos results y otras variables públicas, cómo se llamen:
  11.        Me.Resultss1 = Nothing
  12.        Me.Resultss2 = Nothing
  13.        Me.Resultss3 = Nothing
  14.        Me.VariableInteger = 0
  15.        'etc...
  16.  
  17.        ' Tus controles:
  18.        For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
  19.            tb.Clear()
  20.        Next tb
  21.        For Each gb As GroupBox In Me.Controls.OfType(Of GroupBox)()
  22.            For Each tb As TextBox In gb.Controls
  23.                tb.Clear()
  24.            Next
  25.        Next gb
  26.        Me.ListBox1.Items.Clear()
  27.        Me.ListBox2.Items.Clear()
  28.        Me.ListBox3.Items.Clear()
  29.        Me.ListBox7.Items.Clear()
  30.  
  31.    End Sub

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


Título: Re: Limpiar programa
Publicado por: luis456 en 20 Marzo 2015, 16:52 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
  1.    Private Sub Button2_Click_1(ByVal sender As Object, ByVal e As EventArgs) _
  2.    Handles Button2.Click
  3.  
  4.        Me.CleanUp()
  5.  
  6.    End Sub
  7.  
  8.    Private Sub CleanUp()
  9.  
  10.        ' Tus famosos results y otras variables públicas, cómo se llamen:
  11.        Me.Resultss1 = Nothing
  12.        Me.Resultss2 = Nothing
  13.        Me.Resultss3 = Nothing
  14.        Me.VariableInteger = 0
  15.        'etc...
  16.  
  17.        ' Tus controles:
  18.        For Each tb As TextBox In Me.Controls.OfType(Of TextBox)()
  19.            tb.Clear()
  20.        Next tb
  21.        For Each gb As GroupBox In Me.Controls.OfType(Of GroupBox)()
  22.            For Each tb As TextBox In gb.Controls
  23.                tb.Clear()
  24.            Next
  25.        Next gb
  26.        Me.ListBox1.Items.Clear()
  27.        Me.ListBox2.Items.Clear()
  28.        Me.ListBox3.Items.Clear()
  29.        Me.ListBox7.Items.Clear()
  30.  
  31.    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
 





Título: Re: Limpiar programa
Publicado por: luis456 en 20 Marzo 2015, 17:14 pm
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


Título: Re: Limpiar programa
Publicado por: Eleкtro en 20 Marzo 2015, 17:26 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!


Título: Re: Limpiar programa
Publicado por: luis456 en 21 Marzo 2015, 09:50 am
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