Entwickler-Ecke

WinForms - Form Name als Parameter übergeben


Talemantros - Do 14.05.15 12:59
Titel: Form Name als Parameter übergeben
Hallo,
ich würde gern eine Methode haben, die variable eine Form aufrufen kann.
Leider bekomme ich den Parameter mit der Form nicht übergeben

Habe es mal so versucht


C#-Quelltext
1:
2:
3:
4:
5:
        private void ShowForm(Form form)
        {
            var mydlg = new form();
            mydlg.show(this);
        }


Könnt ihr mir da helfen?

Gruß


Palladin007 - Do 14.05.15 13:07

Du musst den Typ übergeben. Hier bietet sich dazu eine generische Methode an, mit der Einschränkung, dass der generische Typ einen parameterlosen Konstruktor haben soll.


C#-Quelltext
1:
2:
3:
4:
5:
6:
private void ShowForm<TForm>()
    where TForm: Form, new()
{
    var form = new TForm();
    form.Show(this);
}


Oder Du verwendest Die Activator [https://msdn.microsoft.com/de-de/library/system.activator%28v=vs.110%29.aspx]-Klasse, die kann ein Objekt mit einem Type-Objekt erzeugen.


Talemantros - Sa 16.05.15 13:36

Schaue ich mir an..
Vielen Dank