Šta je novo?

jedno pitanjce vezano za promenjive u C#

implant

Čuven
Učlanjen(a)
26.11.2003
Poruke
133
Poena
619
E ovako stvarno nisam lenj da pogledam help, ali ne znam kako da postavim upit ni u helpu ni na netu...

recimo da imam trideset textboxova...koji mi se zovu textBox1...textBox30
i trebam u svaki od njih da upisem jednu istu vrednost...

Kako da izvedem ovo:

for (int i=1; i<=30; i++)
("textBox" +i).Text = "neki tekst";
^
|||

Znaci kako da spojim neku promenjivu i neki string i da to proglasim imenom nekih drugih promenjivih...da ne bih trideset puta pisao u principu istu liniju koda....
 
Evo, ovo pisem iz glave, mozda ima i bolji nacin...

Kod:
foreach (Control t in this.Controls)
if (System.Object.ReferenceEquals(t.GetType(), NekiTextbox.GetType()))
[COLOR=PaleGreen]// Ovako si izvukao sve textboxove iz forma.
[/COLOR]if (t.Name.IndexOf("textBox")==0) 
[COLOR=PaleGreen]// ovim si izvukao sve textboxeve cije ime pocinje sa "textBox"[/COLOR]
t.Text = "Bilo sta"

Naravno, umesto onog "if (t.Name.IndexOf("textBox")==0)" mozes da stavis bilo sta sto ti je kriterijum za ime promenljive...
A ako ti je muka da svaki put ovo radis, mozes na pocetku programa da sa prve dve linije koda izvuces kolekciju svih textBoxeva, pa da nadalje radis sa njom kad ti treba.
 
Hvala ti, ovo sto si napisao jeste resenje za pitanje kako sam ga ja postavio...samo sto sam ja pitanje pojednostavio...u stvari trebam tacno da znam kom textboxu pristupam...znaci treba mi bas neko resenje tipa kako sam "pretpostavio" da mozda postoji...

poenta je da, ako na nacin koji si naveo, izvucem kolekciju svih textboxova koje zelim, (pretpostavljam) necu znati na kojoj je poziciji koji od njih....
 
Pa strpaj ih u niz ili u listu kod kreiranja i pristupaj im onda preko indexa.
 
Naravno to sam odavno uradio, mislio sam da postoji neko jos elegantnije resenje....
 
Idemo...

// Retrieve all controls and all child controls and etc.
// Make sure to send controls back at lowest depth first
// so that most child controls are checked for things before
// container controls, e.g. a TextBox is checked before a
// GroupBox control
Control[] GetAllControls()
{
ArrayList list = new ArrayList();
GetAllControls(Controls, list);
return (Control[])list.ToArray(typeof(Control));
}
void GetAllControls(Control.ControlCollection controls, ArrayList list)
{
foreach(Control control in controls)
{
if(control.HasChildren) GetAllControls(control.Controls, list);
list.Add(control);
}
}

private void StartUp()
{
Control[] controlz = GetAllControls();

foreach (Control c in controlz)
if (c is TextBox)
{
// do smthing...
}
}
 
implant je napisao(la):
poenta je da, ako na nacin koji si naveo, izvucem kolekciju svih textboxova koje zelim, (pretpostavljam) necu znati na kojoj je poziciji koji od njih....

Nije mi jasno, koja ti je informacija/osobina potrebna, koju ne mozes dobiti preko instance text box-a?
 
Poslednja izmena:
A zasto ne bi probao da te textBox-ove stavis u groupBox.Tako bi mogao da pristupas svakom pojedinacno(zajedno) ako hoce
 
Poslednja izmena:
Vrh Dno