Formular instanziieren per String-Variable

stefan7

Grünschnabel
Hallo,

Beim Anlegen einer neuen Formular-Instanz durch
Dim newForm As New Form1
muß "Form1" vom Typ Form sein.

Weiß jemand, ob man das auch über den Namen der Klasse, also den String "Form1" machen kann? Es sollte also so aussehen:
dim ClassName As String = "form1"
Dim newForm As New UmwandlungVonStringZuObject(ClassName)

Wobei ich die Konstruktion "UmwandlungVonStringZuObject(ClassName)" suche.

Danke!
Stefan
 
Knackpunkt scheint dabei zu sein, daß man Infos über Klassen sammeln kann, was eine Klasse namens "Type" erledigt. Hierzu wird die Instanz 'sampleType' der Klasse Type erzeugt:
Dim sampleType As Type = GetType(form1)

Jedoch schon hier würde ich ich die gesuchte Klasse 'MyTypeClass' als Objekt benötigen - wenn es auch (noch) keine Instanz von ihm zu geben braucht. Leider steht mir aber nur der Name der Klasse als Zeichenkette im Inhalt einer Stringvariablen namens 'ClassName' zur Verfügung:

Dim ClassName As String = "form1"

Ich bräuchte also nach wie vor einen Cast von String nach Object

Mir scheint, zu diesem Problem gibt es doch keine Lösung, obwohl ich schon mit der schlechteren zufrieden wäre ;) - oder?
 
Das geht ganz einfach:
Code:
Dim myType as Type = Type.GetType("MeinNamespace.MeineKlasse")
Diese statische (shared) Methode hat noch zwei Überladungen, über die du bestimmen kannst, ob der Pfad zu deiner Klasse Case-Sensitive sein soll oder nicht und ob eine Exception ausgelöst wird, falls die Klasse nicht gefunden wird.
Type.GetType aus der MSDN .NET 2.0
 

Neue Beiträge

Zurück