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.
ÍNDICE
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
Cuando hagamos click en el botón Ejecutar, se descheckearán todos los chekbox del formulario.
Descargar ejemplo