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