Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PYTANIE] tworzenie labeli


Rekomendowane odpowiedzi

Opublikowano

Witam serdecznie :)

 

Potrzebuję zrobić, aby w mojej formie, pojawiło się n labeli jeden pod drugim. Napisałem taki kod, ale pojawia się tylko jeden label.

private void CreateLabels()
{
    int n = 10;
    
    Label[] textForm = new Label[n];
    
    for (int i = 0; i < n; i++)
    {
        textForm[i] = new Label();
        textForm[i].Location = new Point(16, 18 + (i + 1) * 7);
        textForm[i].Text = Convert.ToString(i);
        
        this.Controls.Add(textForm[i]);
    }
}

 

Co poprawić w kodzie, zmienić lub napisać od nowa?

Napisz do mnie, jeżeli potrzebujesz patcher'a.

Opublikowano

Dodaj sobie do okna panel np. w taki sposób

var panel = new Panel()
{
     Dock = DockStyle.Fill,
};
this.Controls.Add(panel);
Dzięki temu nie będziesz musiał obliczać pozycji następnych Labeli.

 

Funkcję zmień na coś takiego

private void _createLabels(Control element, int ilosc)
{
    for (var i = 0; i < ilosc; i++)
         element.Controls.Add(new Label() { Text = i.ToString(), Dock = DockStyle.Top });
}
i wywołaj ją w ten sposób
_createLabels(panel, 10);
Opublikowano

 

Dodaj sobie do okna panel np. w taki sposób

var panel = new Panel()
{
     Dock = DockStyle.Fill,
};
this.Controls.Add(panel);
Dzięki temu nie będziesz musiał obliczać pozycji następnych Labeli.

 

Funkcję zmień na coś takiego

private void _createLabels(Control element, int ilosc)
{
    for (var i = 0; i < ilosc; i++)
         element.Controls.Add(new Label() { Text = i.ToString(), Dock = DockStyle.Top });
}
i wywołaj ją w ten sposób
_createLabels(panel, 10);

 

Podany przez Ciebie sposób działa. Przerobię ten kod na swoje potrzeby i jeżeli wszystko zadziała to dam edita. Jeżeli zadziała to zamykamy temat. :)

 

@ Edit

A jak zrobić, żeby te labele pojawiały się równo z sobą (location.X zgodne), ale oddalone od siebie o 7 (location.Y za każdym razem +7)?

Napisz do mnie, jeżeli potrzebujesz patcher'a.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...