Ejemplo .NET: recorrer un array de checkbox en un form y realizar operaciones

 

logo_NET_390x250

Ejemplo de código fuente en .NET (C# y VB.NET) que consiste en un método de C# y de Visual Basic.NET, con el cual podremos recorrer todos los checkbox que tengamos en un formulario y realizar operaciones de activar, desactivar, habilitar y deshabilitar de un tirón todos ellos, según nos interese en cada momento.

 

 

Descripción del ejemplo

Los checkboxes estarán metidos dentro de un Groupbox, para recorrerlos de manera más sencilla, si por ejemplo tenemos un formulario con muchísimos controles.

A partir del Framework 3.5, tenemos un método muy práctico llamado OfType con el cual nos devolverá los checkbox de todos los controles de un Groupbox. Para frameworks inferiores a 3.5, tendremos que hacerlo creando un bucle foreach que recorra todos esos checkboxes del Groupbox.

 

Código para C#

Framework 2.0 y 3.0

        void CheckedDesCheckedHabilitarDesHabilitar() {

            foreach (Control c in this.groupBox1.Controls)
            {
                
                if(c is CheckBox) 
                {

                    CheckBox chk;
                    chk = (CheckBox)c;

                    //Hacemos el Deschecked a todos los checkbox:
                    chk.Checked = false;

                    //Si quisieramos que todos los chekbox estuvieran en checked:
                    //chk.Checked = true;

                    //Si quisieramos que todos los chekbox se habilitaran:
                    //chk.Enabled = true;

                    //Si quisieramos que todos los chekbox se deshabilitaran:
                    //chk.Enabled = false;
                
                }


            }

        }

 

Framework 3.5 y 4

        void CheckedDesCheckedHabilitarDesHabilitar() {

            //Todos los checkbox serán considerados como un item de checkboxlist:
            List<CheckBox> chkLst = new List<CheckBox>();

            //Añadimos todos los checkboxes al checkboxlist:
            chkLst.AddRange(this.groupBox1.Controls.OfType<CheckBox>());

            for (int i = 0; i < chkLst.Count - 1; i++)
            {

                //Hacemos el Deschecked a todos los checkbox:
                chkLst[i].Checked = false;

                //Si quisieramos que todos los chekbox estuvieran en checked:
                //chkLst[i].Checked = true

                //Si quisieramos que todos los chekbox se habilitaran:
                //chkLst[i].Enabled = true

                //Si quisieramos que todos los chekbox se deshabilitaran:
                //chkLst[i].Enabled = false


            }

        }

 

Código para VB.NET

Framework 2.0 y 3.0

    Sub CheckedDesCheckedHabilitarDesHabilitar()


        For Each c As Control In Me.Groupbox.Controls

            If TypeOf c Is CheckBox Then

                Dim chk As CheckBox
                chk = c

                'Hacemos el Deschecked a todos los checkbox:
                chk.Checked = False

                'Si quisieramos que todos los chekbox estuvieran en checked:
                'chk.Checked = True

                'Si quisieramos que todos los chekbox se habilitaran:
                'chk.Enabled = True

                'Si quisieramos que todos los chekbox se deshabilitaran:
                'chk.Enabled = False


            End If


        Next c



    End Sub

Framework 3.5 y 4

    Sub CheckedDesCheckedHabilitarDesHabilitar()


        Dim ChkLst As New List(Of CheckBox) 'Todos los checkbox serán considerados como un item de ChkLst
        ChkLst.AddRange(Me.GroupBox1.Controls.OfType(Of CheckBox)) 'Añadimos todos los checkboxes al ChkLst

        For I As Integer = 0 To ChkLst.Count - 1

            'Hacemos el Deschecked a todos los checkbox:
            ChkLst(I).Checked = False

            'Si quisieramos que todos los chekbox estuvieran en checked:
            'ChkLst(I).Checked = True

            'Si quisieramos que todos los chekbox se habilitaran:
            'ChkLst(I).Enabled = True

            'Si quisieramos que todos los chekbox se deshabilitaran:
            'ChkLst(I).Enabled = False

        Next (I)


    End Sub

 

Previsualización del ejemplo

 

Ejemplo formulario

Cuando hagamos click en el botón Ejecutar, se descheckearán todos los chekbox del formulario.

 

Descargar ejemplo

 

 

Valoración General

[Valoraciones:  1    Promedio:  5 de 5]