• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla z zmienną nazwą textBox ?

Object Storage Arubacloud
0 głosów
101 wizyt
pytanie zadane 9 listopada 2023 w C# przez Mariusz17 Nowicjusz (120 p.)

Witam! Wie że to będzie pytanie banalne ale zaczynam naukę z C#.

Mam taki banalny skrypt który mi wpisuje dane z tablicy do textbox'ow:

private void button1_Click(object sender, EventArgs e)
        {
            string[] tablica = { "black", "green", "yellow", "blue" };
            textBox1.Text = tablica[0];
            textBox2.Text = tablica[1];
            textBox3.Text = tablica[2];
            textBox4.Text = tablica[3];
        }

można to zrobić jakoś z pętlą for żeby był "ładniej"

zacząłęm:

 for (int i = 0; i < tablica.Length; i++)
            {
                string zmienna  = tablica[i];

             ?????   
            }

i utknąłem, nie wiem co wpisać w pytajniki, nie wiem jak zrobić "textBoxy" żeby miały numery: textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text

2 odpowiedzi

+1 głos
odpowiedź 9 listopada 2023 przez adrian17 Ekspert (345,620 p.)
Wrzuć te 4 textboxy do własnej tablicy i ją indeksuj. Jeśli nie są tworzone dynamicznie, możesz to zrobić raz na początku istnienia okna.
0 głosów
odpowiedź 9 listopada 2023 przez VBService Ekspert (254,490 p.)
edycja 10 listopada 2023 przez VBService

Możesz też spróbować iterować po kontrolkach textBox

np.

private void button1_Click(object sender, EventArgs e)
{
    string[] tablica = { "black", "green", "yellow", "blue" };
    for (int i=0; i<4; i++)
    {
         Controls["textBox" + (i + 1)].Text = tablica[i];
    }
}

lub

        private void button1_Click(object sender, EventArgs e)
        {
            string[] tablica = { "black", "green", "yellow", "blue" };

            // Sprawdź, czy liczba textBox'ów jest większa lub równa długości tablicy
            if (Controls.OfType<TextBox>().Count() < tablica.Length)
                return; // Przerwij działanie metody, jeśli warunek nie jest spełniony

            for (int i=0; i<tablica.Length; i++)
                Controls["textBox" + (i + 1)].Text = tablica[i];
        }

 

komentarz 10 listopada 2023 przez Mariusz17 Nowicjusz (120 p.)
No właśnie nie wiedziałem że jest taka funkcja jak "Controls" i tego mi ciągle brakował. Dzięki !
komentarz 10 listopada 2023 przez VBService Ekspert (254,490 p.)

 jest taka funkcja jak "Controls"

platformie .NET, Controls to kolekcja obiektów reprezentujących wszystkie kontrolki znajdujące się na formie (Form). Kontrolki to interaktywne elementy interfejsu użytkownika, takie jak przyciski, pola tekstowe, etykiety, itp.

Kiedy tworzysz formę w aplikacji Windows Forms w C#, każda kontrolka dodana do tej formy jest przechowywana w kolekcji Controls. To umożliwia łatwy dostęp do wszystkich kontrolek umieszczonych na formie w tym właśnie i iterowanie "po nich". wink

Podobne pytania

+1 głos
1 odpowiedź 1,071 wizyt
pytanie zadane 3 czerwca 2021 w C# przez mateusz45 Gaduła (3,240 p.)
+2 głosów
1 odpowiedź 462 wizyt
pytanie zadane 30 marca 2021 w C# przez mateusz45 Gaduła (3,240 p.)
0 głosów
1 odpowiedź 194 wizyt
pytanie zadane 27 stycznia 2020 w C# przez Kamilos1906 Nowicjusz (240 p.)

92,661 zapytań

141,556 odpowiedzi

319,999 komentarzy

62,028 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...