VS C# CheckedListBox - Unchek all items
Publicado por silversdx8 (1 intervención) el 24/07/2012 15:29:45
Que tal,
Espero que les sirva de algo, a mi me salvo de un colapso
Estuve buscando informacion en la web sobre CheckedListBox y los controls que tienen para poder tildar, destildar, seleccionar todos los items de uno o varios CheckedListBox con solo un boton.
En muchos lugares (si bien eran post anteriores al 2011) decian que no se podia hacer en forma general (con un FOREACH, SWITCH/CASE) pero re pensandolo, biendolo funcionar en mi cabeza pero no en el codigo... llegue a una solucion (de seguro mas de uno lo ha encontrado y mas eficiente que el mio
)
private void Desmarcar(Control SinTildar) //tipico Control
{
foreach (Control SinMarcar in SinTildar.Controls)
{
//planteo que tipo de control es
if (SinMarcar is CheckedListBox)
{
//con esta linea saco la molesta marca azul que hace sobre los items seleccionados
((CheckedListBox)SinMarcar).ClearSelected();
//con esta linea cuento los items y seteo SetItemChecked en TRUE/FALSE dependiendo del caso
for (int s = 0; s < ((CheckedListBox)SinMarcar).Items.Count; ++s)
((CheckedListBox)SinMarcar).SetItemChecked(s, false);
}
}
}
La verdad que no es gran cosa, pero me resulto facil para el formulario que estaba armando con varios de estos, en si lo use con un boton para borrar el formulario (TextBox, ListBox, etc.)
Saludos
Espero que les sirva de algo, a mi me salvo de un colapso

Estuve buscando informacion en la web sobre CheckedListBox y los controls que tienen para poder tildar, destildar, seleccionar todos los items de uno o varios CheckedListBox con solo un boton.
En muchos lugares (si bien eran post anteriores al 2011) decian que no se podia hacer en forma general (con un FOREACH, SWITCH/CASE) pero re pensandolo, biendolo funcionar en mi cabeza pero no en el codigo... llegue a una solucion (de seguro mas de uno lo ha encontrado y mas eficiente que el mio

private void Desmarcar(Control SinTildar) //tipico Control
{
foreach (Control SinMarcar in SinTildar.Controls)
{
//planteo que tipo de control es
if (SinMarcar is CheckedListBox)
{
//con esta linea saco la molesta marca azul que hace sobre los items seleccionados
((CheckedListBox)SinMarcar).ClearSelected();
//con esta linea cuento los items y seteo SetItemChecked en TRUE/FALSE dependiendo del caso
for (int s = 0; s < ((CheckedListBox)SinMarcar).Items.Count; ++s)
((CheckedListBox)SinMarcar).SetItemChecked(s, false);
}
}
}
La verdad que no es gran cosa, pero me resulto facil para el formulario que estaba armando con varios de estos, en si lo use con un boton para borrar el formulario (TextBox, ListBox, etc.)
Saludos
Valora esta pregunta


0