2017-05-12 4 views
-1

Essayer d'ajouter des contrôles à un TabPage, seule la première étiquette s'ajoute, pas sûr du problème, s'il vous plaît vérifierAjouter des contrôles à TabPage, seule la première étiquette s'ajoute

int X = 230; 
int Y = 10; 

ArrayList Lbls = new ArrayList(); 
Lbls.Add("Lbls_1"); 
Lbls.Add("Lbls_2"); 
Lbls.Add("Lbls_3"); 
Lbls.Add("Lbls_4"); 
Lbls.Add("Lbls_5"); 

foreach (object obj in Lbls) 
{ 
    Label LblsAdd = new Label(); 
    LblsAdd.AutoSize = true; 
    LblsAdd.Text = obj.ToString(); 
    LblsAdd.Left = X + 50; 
    LblsAdd.Top = Y; 
    LblsAdd.Size = new System.Drawing.Size(30, 15); 
    MyTabPage.Controls.Add(LblsAdd); 
} 
+1

les étiquettes sont à le même endroit. vous devez changer X dans la boucle –

+0

Ajoutez "+50" à gauche, est-ce faux? – StackHack

+0

c'est faux. au-dessus de cette ligne, ajoutez 'X + = 35;' –

Répondre

1

Comme nous l'avons souligné, tout les étiquettes sont sur le même emplacement, car à chaque itération X reste à 230 + 50 = 280. vous devez incrémenter cette variable de sorte que pour l'étiquette suivante, vous pouvez utiliser le résultat mis à jour:

foreach (object obj in Lbls) 
{ 
    Label LblsAdd = new Label(); 
    LblsAdd.AutoSize = true; 
    LblsAdd.Text = obj.ToString(); 
    X = X + 50; // write a new value into the variable X 
    LblsAdd.Left = X; 
    LblsAdd.Top = Y; 
    LblsAdd.Size = new System.Drawing.Size(30, 15); 
    MyTabPage.Controls.Add(LblsAdd); 
}