Witam
Mam problem ze sprawnym odwołaniem się do wielu obiektów TextBox.
W aplikacji istnieje ok 20 TextBox-ów (TextBox1 .... TextBox20)
Potrzebuję stworzyć funkcję przypisującą do odpowiedniego textbox-a odpowiednią wartość z tablicy
np: TextBox1.Text=tekst[1]
I teraz pytanie jak dynamicznie zmienić obiekt aby tekst[2] trafił do TextBox2 ??
i tak dalej dla dowolnego parametru będącego identyfikatorem elementu tablicy i jednocześnie numerem TextBox-a ?
Użycie switch chyba nie jest najwydajniejszą metodą, poza tym wygląda nieelegancko :).
Z góry dzięki za sugestie.
0
1
TextBox[] tekstboksy = new TextBox[] {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, ... };
0
var textBoxes = new List<TextBox>();
for (int i = 0; i < 20; i++)
{
textBoxes.Add(new TextBox { Location = new Point(0, 20 * i) });
Controls.Add(textBoxes[i]);
}
var strings = new List<string>();
for (int i = 0; i < 20; i++)
{
strings.Add(i.ToString(CultureInfo.InvariantCulture));
textBoxes[i].Text = strings[i];
}
0
Dzięki, dopadło mnie jakieś zaćmienie :)
0
Można też nie utrudniać sobie życia tablicą, skoro kolekcja kontrolek formy już i tak istnieje:
var textBoxes = this.Controls.OfType<TextBox>().OrderBy(t => t.Name).ToArray();
for (int i = 0; i < textBoxes.Length; i++)
{
textBoxes[i].Text = tekst[i];
}
0
Kolekcję textboksów proponuję trzymać jako pole klasy, nie ma potrzeby jej generowania na nowo za każdym razem.