Máš tam hneď pár problémov....
1.) premenná vypisPocetObdobi. Najskôr ju inicializuješ ako pole int-ov s názvom "vypisPocetObdobi" a potom si počas každej iterácie vytváraš novú s názvom "vypisPocetObdobii" a typom Label[]. Či si to tak zamýšľal alebo nie, je to veľmi zlý nápad už len kvôli nešťastne zvoleným menám...
2.) zápis "new Label[x]" znamená to, že vytváraš pole o veľkosti x.. Prečo to robíš?
3.) zápis vypisPocetObdobii[x] znamená to, že sa odkazuješ na x-tý prvok v poli vypisPocetObdobii... opäť, prečo?
4.) ty síce nastavuješ vlastnosti nejakému Labelu, avšak nikde ten Label nielenže nevytváraš (vytváraš len pole plné Labelov, teda výtvaral by si, keby si to robil poriadne), ale ani nepridávaš do UI
5.) nejakýLabel.Show() ti je nanič, rovnako nastavovanie vlastnosti Visible
6.) posledný riadok je asi najnešťastnejší. Nemáš ani ten najmenší dôvod niečo takéto robiť. Jednak sa odkazuješ na prvok na pozícii x+1 a druhak pri ďalšej iterácii sa daná premenná zahodí a použije úplne nová. To, že u teba v editore má rovnaký názov je irelevantné, pretože má len obmedzenú dobu života a pri začiatku každej iterácii cyklu ju inicializuješ tak či tak nanovo.
7.) chceš vypisovať podľa všetkého mesiace, ale začínaš od nuly... čo je nultý mesiac?
8.) Convert.ToString(x) je podľa mňa zbytočne nepekný zápis. Krajšie je x.ToString()
Aby som to zhrnul, chcel si pravdepodobne niečo takéto:
Kód:
int positionY = 33;
for (int x = 1; x <= 12; x++)
{
Label lblObdobie = new Label(); // vytvorime novy Label
lblObdobie.Text = x.ToString(); // nastavime mu vlastnost Text na "x"
lblObdobie.Location = new Point(48, positionY); // nastavime mu polohu
nejakyRodicovskyPrvok.Controls.Add(lblObdobie); // pridame ho do rodicovskeho prvku, napriklad do Panel-u
positionY += 23; // zvysime hodnotu pre dalsiu iteraciu
}
Ak nechápeš, nefunguje, pýtaj sa
Ach, konečne C# otázka