Hallo zusammen,
ich habe mir ein Formular gebaut, das hat einfach nur ein DataGrid und ein paar Buttons (hinzufügen, bearbeiten, löschen).
Ich möchte in meiner Anwendung Kunden, Artikel, Mitarbeiter etc. in diesem EINEM Hauptformular anzeigen lassen.
Je nachdem: bei Klick auf Mitarbeiter: übergebe ich eine Mitarbeiterliste an die Form, bei Klick auf Kunden, übergebe ich eine Kundenliste an die Form....
Bis hier ist alles in Ordnung.
Jetzt brauche ich pro Objekt ja eine Detailansicht ... MitarbeiterDetail, Kundendetail, also habe ich hier für jedes Objekt eine Form gebaut.
Wie kriege ich nun aber eine Instanz des Formulars erzeugt?
Ich glaube mit Activator.CreateInstance(..) schieße ich mit Kanonen auf Spatzen.
Danke für jeden Tipp.
Katja
Was spricht gegen MitarbeiterDetail md = new MitarbeiterDetail() ?
Hi,
hm, ok, ich hab mich wahrscheinlich blöde ausgedrückt.
Ich habe wie gesagt die eine Form als Container, die je nach Auswahl entweder eine Liste von Mitarbeitern, Kunden etc anzeigt.
Ich spezifiziere in dieser Form KEINE Klasse, also auch nicht new MitarbeiterDetail () oder oder ...
Das soll variable oder zur Laufzeit, je nach Objekttyp geladen werden.
Ich müsst eigentlich wahrscheinlich nur wissen,
wie ich im Konstruktor der Form noch eine Parameter hinzufüge, der mir den FormTyp spezifiziert, dann ginge des ja.
Danke.
Katja
Das kannst du einem Konstruktor garnicht mitteilen, ein Konstruktor erzeugt immer von einer bestimmten Klasse eine Instanz.
Es ist aber möglich, dass du das Factory-Pattern / Fabrikmuster anwendest.
Gruß
Juy Juka
Hallo kat_2403,
Ich glaube mit Activator.CreateInstance(..) schieße ich mit Kanonen auf Spatzen.
warum? Ist sicher eine der Möglichkeiten, die am wenigsten Code kostet.
herbivore
Ich glaube mit Activator.CreateInstance(..) schieße ich mit Kanonen auf Spatzen.
solange das aber so performante Kanonen sind ist auch das kein Problem. Im Gegenteil, dann ist es auch kein Problem, wenn sich die Spatzen noch zu ausgewachsenen Raubvoegeln entwickeln... 🙂
Hi und danke,
dann schau ich, dass ich das via CreateInstance() instanziiere.
Katja