Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Shout en 4 Junio 2013, 21:42 pm



Título: [C#] Ocultar varios groupbox
Publicado por: Shout en 4 Junio 2013, 21:42 pm
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
  1. for(var i=1;i<101;i++) document.getElementById('element' + i).style.display = 'none';
  2.  


Título: Re: [C#] Ocultar varios groupbox
Publicado por: Eleкtro en 4 Junio 2013, 21:57 pm
Te lo he hecho en VBNET, no es nada dificil convertirlo a C#:

Código
  1.    Public Sub Disable_Groupboxes(ByVal Container As ControlCollection, ByVal Visible As Boolean)
  2.        For Each Control As Control In Container
  3.            If TypeOf Control Is GroupBox Then Control.Visible = Visible
  4.        Next
  5.    End Sub

Código
  1. Disable_Groupboxes(Me.Controls, False)

http://converter.telerik.com/

Saludos!


Título: Re: [C#] Ocultar varios groupbox
Publicado por: 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


Título: Re: [C#] Ocultar varios groupbox
Publicado por: Eleкtro en 4 Junio 2013, 22:04 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
  1. If TypeOf Control Is GroupBox andalso Control.name.startswith("grpEx") then...

Saludos!


Título: Re: [C#] Ocultar varios groupbox
Publicado por: Shout en 4 Junio 2013, 22:09 pm
Gracias, solucionado. Se puede cerrar!  ;-)