Witam.
Chciałbym zapytać czy istnieje możliwość odwołania się do konkretnego obiektu i zmienić np. jego wartość, ale odwołując się nie bezpośrednio po nazwie a inaczej.
Przyjmijmy że mam w programie 3 groupboxy a w nich np. po 3 textboxy. Dla ułatwienia nazwijmy je w grupboxie pierwszym jako G1Box1, G1Box2, G1Box3. W groupboxie drugim G2Box1, G2Box2, G2Box3, a w trzecim G3Box1, G3Box2, G3Box3. Teraz załóżmy, że mam w programie pewną zmienną x, która przyjmuje wartości od 1 do 3 w zależności od pewnych warunków. Do tego jest button i przypisana do niego funkcja jako onclick event. To co chcę osiągnąć to sprawdzenie w tej funkcji wartości tej zmiennej x i jeśli ma ona wartość 1 to zmieniamy tekst w textboxach w grupboxie1 na jakiś tam "XYZ" (nieistotne). Jeśli zmienna x ma wartość 2 to robimy to samo ale w grupboxie2, a jeśli wynosi 3 to w groupboxie3. W skrócie można to zrobić tak:
funkcjaButtonClick{
if(zmiennax == 1){
G1Box1.Text = "XYZ"
G1Box2.Text = "XYZ"
G1Box3.Text = "XYZ"
}
if(zmiennax == 2){
G2Box1.Text = "XYZ"
G2Box2.Text = "XYZ"
2Box3.Text = "XYZ"
}
if(zmiennax == 3){
G3Box1.Text = "XYZ"
G3Box2.Text = "XYZ"
G3Box3.Text = "XYZ"
}
}
Ale co będzie gdy będę miał nie 3 a 30 groupboxów z np. 10 textboxami w każdym. Czy jest inna możliwość niż kopiowanie głupio tego samego kodu dla wszystkich opcji zmiennej x?
Czy można w jakiś sposób potraktować te textboxy jako np. tablicę gdzie podaję wartość zmiennej x? Czyli coś w stylu G[zmiennax].Box1.Text = "XYZ' jako nazwa groupboxa?
Nie wiem, czy dobrze to wytłumaczyłem, ale mam nadzieję że tak.
Proszę o jakieś wskazówki jak rozwiązać powyższy problem.
Dziękuję z góry.