Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 6 Enero 2013, 04:39 am



Título: Una ayuda para recordar los checkboxes seleccionados
Publicado por: Eleкtro en 6 Enero 2013, 04:39 am
Al clickar sobre el botón azul que he señalado en la imagen (2011), se generan en tiempo real una lista de checkboxes y botones en el GroupBox de la derecha,
al clickar en uno de los botones generados en el groupbox, se parsea un texto delimitado y se añaden los items al listview.

Al clickar en otro botón azul limpio los controles del GroupBox (...controls.clear) y todo vuelve a empezar.

Bien, por cada botón azul, necesito recordar los checkboxes del GroupBox que estaban seleccionados, y los items del listview que estaban seleccionados.

Necesito recordarlo dentro del programa, no necesito que cada vez que se abra la aplicación se recuerden los elementos.

Creo que puedo hacer esto sin ayuda pero seguro que lo haría de la manera más complicada xD, me vendrían bien algunas sugerencias antes de empezar a hacerlo...

Mi pregunta es... ¿Como me recomiendan hacerlo?

(http://img560.imageshack.us/img560/2697/prtscrcapture5.jpg)


EDITO:

No se si será la forma más correcta, pero bueno, así es como lo he hecho de momento:


Código
  1.  
  2. Public SelectedFolders As New List(Of String)
  3.  
  4.   Public Sub LlamadaCheckBox(ByVal sender As Object, ByVal e As System.EventArgs)
  5.        Dim CheckboxN As CheckBox = CType(sender, CheckBox)
  6.        If CheckboxN.Checked = True Then
  7.            SelectedFolders.Add(ResourceTag & CheckboxN.Text)
  8.        Else
  9.            SelectedFolders.Remove(ResourceTag & CheckboxN.Text)
  10.        End If
  11.    End Sub


el sub que crea los controles:
Código
  1.  Private Sub AddSubfolders(ByVal InputList As List(Of String))
  2.        GroupBox_subcarpetas.Controls.Clear()
  3.  
  4.        Dim foldernum As Integer = 0
  5.        Dim Array_Size As Integer = InputList.Count
  6.        Dim chk_() As CheckBox
  7.        Dim btn_() As Button
  8.        ReDim chk_(Array_Size)
  9.        ReDim btn_(Array_Size)
  10.  
  11.        For Each folder In InputList
  12.  
  13.            foldernum += 1
  14.            chk_(foldernum) = New CheckBox
  15.            chk_(foldernum).Name = "CheckBox" & foldernum
  16.            chk_(foldernum).Text = folder
  17.            chk_(foldernum).Top = 20 * foldernum
  18.            chk_(foldernum).Tag = ResourceTag & chk_(foldernum).Text
  19.  
  20.            btn_(foldernum) = New Button
  21.            btn_(foldernum).Name = "Button" & foldernum
  22.            btn_(foldernum).Text = folder
  23.            btn_(foldernum).TextAlign = ContentAlignment.TopLeft
  24.            btn_(foldernum).Size = New Point(111, 20)
  25.            btn_(foldernum).Top = 20 * foldernum
  26.            btn_(foldernum).Location = New Point(20, btn_(foldernum).Top)
  27.            btn_(foldernum).Tag = ResourceTag
  28.  
  29.            GroupBox_subcarpetas.Controls.Add(chk_(foldernum))
  30.            GroupBox_subcarpetas.Controls.Add(btn_(foldernum))
  31.            AddHandler chk_(foldernum).CheckedChanged, AddressOf LlamadaCheckBox
  32.            AddHandler btn_(foldernum).Click, AddressOf LlamadaButton
  33.  
  34.            btn_(foldernum).BringToFront()
  35.  
  36.            If SelectedFolders.Contains(ResourceTag & chk_(foldernum).Text) Then chk_(foldernum).Checked = True
  37.  
  38.        Next
  39.  


Título: Re: Una ayuda para recordar los checkboxes seleccionados
Publicado por: $Edu$ en 6 Enero 2013, 16:25 pm
Aprendes rapido Elektro, a mi me parece bien eso que hiciste, si por lo menos te anda yo lo dejaria asi a no ser que alguien te diga que exista algun metodo para hacer esto o quien sabe.

Lo que si no se es porque los borras a los controles en vez de ocultarlos, si solo los ocultaras no necesitarias hacer todo lo que haces.


Título: Re: Una ayuda para recordar los checkboxes seleccionados
Publicado por: ABDERRAMAH en 6 Enero 2013, 17:47 pm
Yo creo que es fácil con un array multidimensional de datos booleanos, puedes hacer un foreach a la lista de checkbox para guardar en cada booleano el estado de checked. Cada grupo se guarda en una dimensión nueva y listo.