C# i dynamiczne tworzenie kontrolek na formie.

0

Witam!
Mam projekt w c# stacji benzynowej na formie zostały umieszczone 4 zakładki : Zbiorniki, Dystrybutory,Kasy, Sejf.
1-sza domyślnie zawiera 3 zbiorniki, 2-ga 4 dystrybutory, 3-cia 2 kasy i ostatnia 1 sejf.
Problem polega na stworzeniu nowej formy, która będzie zawierała przycisk po naciśnieciu którego odpali się wcześniej wspomniana forma z losowa liczba w przedziale od 1-4 dystrybutorów i kas. Jakieś pomysły ?

0

Tak. W konstruktorze formy po InitializeComponents() wstawiasz losowanie. Następnie tworzysz zadaną liczbę kontrolek, ustawiasz potrzebne właściwości i dodajesz do kontenera. Wszystko.

0

Wszystko fajnie tylko mam problem z nazwami zmiennych, w głownej formie mam tak:
Dystrybutor D1 = new Dystrybutor();
D1.Parent = tabControl1.TabPages[1];
pozniej D2 itd,
więc do dynamicznego tworzenia kontrolek potrzebuje jeszcze ich dynamicznych nazw.
Na tej 2-giej formie mam coś takiego :

private void button1_Click(object sender, EventArgs e)
{

        Form1 tmp = new Form1();
        tmp.Controls.Clear();
        List<Dystrybutor> dystrybutorek = new List<Dystrybutor>();
            Dystrybutor newDys = new Dystrybutor();
            dystrybutorek.Add(newDys);
            tmp.Controls.Add(newDys);
            tmp.Show();
    }

dodaje mi to dystrybutor na forme jednak ja chcę, np. dodac 3 obok siebie i z tym mam problem

0

Nie wiem czy oto Ci chodzi do końca ale przykład na buttonach. Masz listę tych dynamicznie tworzonych obiektów i podczas tworzenia nadawaj im nazwy.

List<Button> lb = new List<Button>();
            for (int i = 0; i < 3; i++)
            {
                lb.Add(new Button { Name = "bt" + i });
            }

potem możesz je identyfikować po nazwach i ustalać wysokości odległości czy co tam chcesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1