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:
Public SelectedFolders As New List(Of String)
Public Sub LlamadaCheckBox(ByVal sender As Object, ByVal e As System.EventArgs)
Dim CheckboxN As CheckBox = CType(sender, CheckBox)
If CheckboxN.Checked = True Then
SelectedFolders.Add(ResourceTag & CheckboxN.Text)
Else
SelectedFolders.Remove(ResourceTag & CheckboxN.Text)
End If
End Sub
el sub que crea los controles:
Private Sub AddSubfolders(ByVal InputList As List(Of String))
GroupBox_subcarpetas.Controls.Clear()
Dim foldernum As Integer = 0
Dim Array_Size As Integer = InputList.Count
Dim chk_() As CheckBox
Dim btn_() As Button
ReDim chk_(Array_Size)
ReDim btn_(Array_Size)
For Each folder In InputList
foldernum += 1
chk_(foldernum) = New CheckBox
chk_(foldernum).Name = "CheckBox" & foldernum
chk_(foldernum).Text = folder
chk_(foldernum).Top = 20 * foldernum
chk_(foldernum).Tag = ResourceTag & chk_(foldernum).Text
btn_(foldernum) = New Button
btn_(foldernum).Name = "Button" & foldernum
btn_(foldernum).Text = folder
btn_(foldernum).TextAlign = ContentAlignment.TopLeft
btn_(foldernum).Size = New Point(111, 20)
btn_(foldernum).Top = 20 * foldernum
btn_(foldernum).Location = New Point(20, btn_(foldernum).Top)
btn_(foldernum).Tag = ResourceTag
GroupBox_subcarpetas.Controls.Add(chk_(foldernum))
GroupBox_subcarpetas.Controls.Add(btn_(foldernum))
AddHandler chk_(foldernum).CheckedChanged, AddressOf LlamadaCheckBox
AddHandler btn_(foldernum).Click, AddressOf LlamadaButton
btn_(foldernum).BringToFront()
If SelectedFolders.Contains(ResourceTag & chk_(foldernum).Text) Then chk_(foldernum).Checked = True
Next
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.
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.