Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Tomanek1
Člen
Avatar
Tomanek1:8.2.2013 12:29

Zdravím
je to můj první příspěvěk do fóra, tak snad ze sebe hned neudělám vola. No k problému...
začal jsem dělat projekt, kde jsem měl pole typu int a každá hodnota pole je jenou z deseti textBoxů.
pole[1] = Convert.ToInt32(tex­tBox1.Text);
pole[2] = ....atd
Sice mě hned na začátku trklo, že je zbytečné vypisovat všech deset hodnot pole s přiřazením pod sebou a udělat to přes for ale narazil jsem na problém.
Hodnoty pole jsem udělal normálně přes proměnnou ( pole[n] ), ale textBox1 až textBox10 se mi udělat nepovedl.
string box = "textBox"
box + n; // číslování o jeden prvek víc než u pole
Výsledkem by měl být "textBox1" ovšem když sem to zapsal do cyklu for:
pole[1] = Convert.ToInt32(box­.Text);
Je mi jasné, že proměná box je v tuto chvíli jen obyčejný řetězec a ne oběkt který je v ní napsán, takže by mě zajímalo když mám víc objektů stejného názvu rozdílného pouze koncovým číslem jak je zpracovat rychleji.
Doufám, že jsem dobře vysvětlil můj problém. Díky za všechny odpovědi.

Editováno 8.2.2013 12:32
 
Odpovědět
8.2.2013 12:29
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Tomanek1
David Hartinger:8.2.2013 12:33

TextBoxy můžeš dát do nějakého kontejneru (třeba do panelu) a proiterovat jeho kolekci Controls. Obvyklejší je ale použít ListBox nebo něco podobného, ještě se mi nestalo, že bych potřeboval 10 TextBoxů, někde bude chyba v návrhu programu.

Nahoru Odpovědět
8.2.2013 12:33
New kid back on the block with a R.I.P
Avatar
Tomanek1
Člen
Avatar
Tomanek1:8.2.2013 12:37

Ano vím, že deset textBoxů je hodně a dalo by se to vyřešit jinak ale právě mi šlo o vyřešení toho problému pokud jich už tolik je, jak ty data spracovat co možná nejefektivněji.

 
Nahoru Odpovědět
8.2.2013 12:37
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Tomanek1
David Hartinger:8.2.2013 12:55

Ten program je blbě, protože k tomuto účelu jsou jiné komponenty. Jak to udělat jsem ti říkal, dej si textboxy do panelu a pak zavolej něco jako:

for (int i = 0; i < panel1.Controls.Count; i++)
{
    TextBox t = panel1.Controls[i] as TextBox;
    pole[i] = t.Text;
}

Psal jsem to z hlavy, kdyžtak si to uprav.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
8.2.2013 12:55
New kid back on the block with a R.I.P
Avatar
Tomanek1
Člen
Avatar
Tomanek1:8.2.2013 12:58

Aha už tomu rozumím. Děkuju za radu

Editováno 8.2.2013 12:58
 
Nahoru Odpovědět
8.2.2013 12:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.