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í:
for(var i=1;i<101;i++) document.getElementById('element' + i).style.display = 'none';
Te lo he hecho en VBNET, no es nada dificil convertirlo a C#:
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
Disable_Groupboxes(Me.Controls, False)
http://converter.telerik.com/
Saludos!
Gracias, pero, ¿no hay manera de ocultar sólo los "grpEx*" sin tener que recorrer todos los groupboxes? Es para optimizar un poco
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: If TypeOf Control Is GroupBox andalso Control.name.startswith("grpEx") then...
Saludos!
Gracias, solucionado. Se puede cerrar! ;-)