2012-02-21 10 views
5

Tengo una pregunta, quiero agregar una matriz de control a la forma de Windows dinámicamente, he preparado el código como siguiente, pero la pregunta es solo los primeros controles muestra en la forma restantes están presentes en la colección de controles pero no se muestran en la forma. ¿Qué falta en el código? CódigoAgregando una matriz de control dinámicamente a la forma de win

:

LinkLabel[] arrLbl = new LinkLabel[5]; 

for (int i = 0; i < 5; i++) 
{ 
    LinkLabel lbl = new LinkLabel(); 
    lbl.Text = "Label: " + i.ToString(); 
    arrLbl[i] = lbl; 
} 

foreach (Control c in arrLbl) 
    this.Controls.Add(c); 

Respuesta

15

Su código es correcto. Es probable que el problema sea que todos los controles que está agregando se están acumulando uno encima del otro, lo que hace que solo vea el que está en la parte superior.

No sé a qué tipo de control de contenedor los está agregando, pero considere agregarlos a un FlowLayoutPanel, que se encargará automáticamente de organizar sus controles secundarios.

Puede elegir si desea que los controles secundarios "fluyan" vertical u horizontalmente configurando FlowDirection property.

Si no desea utilizar un FlowLayoutPanel (u otro control inteligente de contenedor), tendrá que configurar manualmente el Location property de cada uno de sus controles secundarios.

1

Debe establecer la propiedad Ubicación de cada control. Se están representando entre sí.

+0

Debo hacer algo como esto: lbl [index] .Location = new Point (x, y). Lo he intentado antes, pero no funcionó para mí! ¿Cuál sería la razón? –

+0

y que fueron x y y? – Beatles1692

+0

X era estático e y se incriminó a través de un bucle como este: lbl.Location = new Point (0, counter + 10); –

Cuestiones relacionadas