• 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 ?

Aruba Cloud - Virtual Private Server VPS
0 głosów
315 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 Mentor (352,580 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 (256,600 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 (256,600 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,264 wizyt
pytanie zadane 3 czerwca 2021 w C# przez mateusz45 Gaduła (3,280 p.)
+2 głosów
1 odpowiedź 769 wizyt
pytanie zadane 30 marca 2021 w C# przez mateusz45 Gaduła (3,280 p.)
0 głosów
1 odpowiedź 270 wizyt
pytanie zadane 27 stycznia 2020 w C# przez Kamilos1906 Nowicjusz (240 p.)

93,336 zapytań

142,332 odpowiedzi

322,418 komentarzy

62,673 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...