Buenas, tengo una duda.
Soy muuuy novato en esto del visual basic .net y la programación en general, así que no os tiréis a la yugular si lo que digo es descabellado (que no creo).
Tengo una aplicación con varios checks y varios listbox. Cada check hace que se llene un listbox concreto. Actualmente lo que hago es mirar "if chk1.checked = true then" y ahí dentro ejecuto un código (llamo a una función), luego paso al siguiente "elseif chk2.checked then" etc. El problema es que también puede haber varios checkbox ticados y me interesa llenar varios listbox a la vez. Puedo hacerlo a base de IF pero es una chapuza.
La idea es comprobar todos los checks y por cada uno que esté marcado, meter en un array el nombre del listbox a llenar, así cuando quiera ejecutar la función para llenar listbox, poder recorrer el array y poder llamar a una función del estilo:
lstboxArray.items.add(función_para_llenar_listboxes)
EDIT: Actualizo el código. Ya casi casi me funciona lo que quiero, pero no me graba el valor correcto, siempre me graba lstBoxDreta. ¿Por qué puede ser?
Public Function Prova()
Dim Llistes() As ListBox
Dim ListBoxes() As ListBox = {lstBoxEsquerra, lstBoxDreta}
Dim Cont As Integer = 0
ReDim Llistes(2)
Dim tempo As String = ""
For Each checkbox As Control In Me.Controls
For Each child As Control In checkbox.Controls
If TypeOf child Is CheckBox And Cont < ListBoxes.Length Then
Dim chk As CheckBox = CType(child, CheckBox)
Llistes(Cont) = ListBoxes(Cont)
txtDebug.Text = Llistes(Cont).Name.ToString
Cont += 1
End If
Next child
Next checkbox
Return Llistes
End Function
(código más legible aquí:
http://www.blogtrog.com/code.aspx?id=13 ... 6160356f5b)