Diskuze: Objekt jako proměná

C# .NET .NET (C# a Visual Basic) Objekt jako proměná American English version English version

Avatar
Tomanek1
Člen
Avatar
Tomanek1:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomanek1
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Tomanek1
Člen
Avatar
Tomanek1:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomanek1
David Čápka:

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í
+1 bodů
Řešení problému
Nahoru Odpovědět 8.2.2013 12:55
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Tomanek1
Člen
Avatar
Tomanek1:

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.