[C#] Ocultar varios groupbox

Iniciado por Shout, 4 Junio 2013, 21:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Shout

Buenas, tengo un formulario con varios groupbox en él (grpBox1, grpBox2, grpBox3... hasta 100) y lo que quiero es ocultarlos todos con una función sin tener que ir escribiendo grpBox1.Visible = false;, grpBox2.Visible = false; ... grpBox100.Visible = false;

¿Se puede?

En javascript lo haría así:
Código (javascript) [Seleccionar]

for(var i=1;i<101;i++) document.getElementById('element' + i).style.display = 'none';
I'll bring you death and pestilence, I'll bring you down on my own

Eleкtro

#1
Te lo he hecho en VBNET, no es nada dificil convertirlo a C#:

Código (vbnet) [Seleccionar]
   Public Sub Disable_Groupboxes(ByVal Container As ControlCollection, ByVal Visible As Boolean)
       For Each Control As Control In Container
           If TypeOf Control Is GroupBox Then Control.Visible = Visible
       Next
   End Sub


Código (vbnet) [Seleccionar]
Disable_Groupboxes(Me.Controls, False)

http://converter.telerik.com/

Saludos!








Shout

Gracias, pero, ¿no hay manera de ocultar sólo los "grpEx*" sin tener que recorrer todos los groupboxes? Es para optimizar un poco
I'll bring you death and pestilence, I'll bring you down on my own

Eleкtro

#3
Cita de: Shout en  4 Junio 2013, 22:03 PM
Gracias, pero, ¿no hay manera de ocultar sólo los "grpEx*" sin tener que recorrer todos los groupboxes? Es para optimizar un poco

No, hay que hacer la iteración de los controles uno por uno,
Otra forma sería que todos esos groupboxes los metieses en un nuevo panel (Dentro del panel que ya estás usando), y entonces haces un simple "NuevoPanel.visible = false"

EDITO:
Código (vbnet) [Seleccionar]
If TypeOf Control Is GroupBox andalso Control.name.startswith("grpEx") then...

Saludos!








Shout

Gracias, solucionado. Se puede cerrar!  ;-)
I'll bring you death and pestilence, I'll bring you down on my own