C# - dynamisch Objekte erzeugen/benennen?

Gast #817679
Lesenswert?

Hallo,

Ich bastele an einer Anwendung herum, bei der eine Konfiguration mit 
verschiedenen Elementen erstellt wird und dann jedes Element einzeln 
bearbeitet werden kann. Die verschiedenen Elementklassen werden durch 
unterschiedliche Formulare (Windows Forms) bearbeitet.
Bis jetzt hatte ich das so geregelt:
1
switch(Auswahl)
2
{
3
   1 : FormTyp1 form = new FormTyp1(para);
4
       form.ShowDialog(); // Formular blockiert restliches Programm bis geschlossen
5
       form.Dispose();
6
       this.Refresh();
7
       break;
8
   2 : FormTyp2 form = new FormTyp2(para);
9
       form.ShowDialog(); // Formular blockiert restliches Programm bis geschlossen
10
       form.Dispose();
11
       this.Refresh();
12
       break;
13
  ...
14
}

Dabei wird immer nur das jeweilige Element geöffnet und danach wieder 
geschlossen und entfernt.
Jetzt soll es aber möglich sein das mehrere Formulare gleichzeitig 
geöffnet werden können (also man kann mehrere Elemente aus der 
Konfiguration öffnen).

Mein Problem liegt jetzt natürlich darin das ich nicht voraussehen kann 
welches Formular schon offen ist bzw. wie ich jedem Formular einen 
eigenen Namen geben kann. Bis jetzt hieß ja jedes nur form und wurde 
nach Verwendung geschlossen.
Kann ich irgendwie die Namen zur Erzeugung dynamisch erstellen oder 
bliebe da nur eine riesige switch-Anweisung als Möglichkeit.

Ich hoffe ich konnte mein Problem ausreichen klarstellen und das mir 
jemand  helfen kann.

MfG
gaston
Gast #817946
Lesenswert?

Das kannst du sicher mit einer Liste lösen:

List<Form> formList = new List<Form>;


..

Form f = new Form();
formList.Add(f);

Dann kannst du über die Liste iterieren, das ersetzt dann dein großes 
Switch:

foreach (Form f in formList)
{
    ...
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren