none
Form aus anderem Projekt aufrufen RRS feed

  • Frage

  • Hallo Forum,

    ich habe eine Projektmappe mit 3 einzelnen Projekten.

    Nun möchte ich aus Projekt 1  eine Form aus Projekt 3 aufrufen.

    Alle Form Namen habe ich in einer Datenbank gespeichert. Daraus baue ich je nach Umfang einen Tree auf.

    Bisher habe ich die Form aus dem Tree immer so aufgerufen.

    Der row Text ist zB. Projekt1.Form4

    Wenn ich das im Prokjet1 mache geht das auch.

    Type Fenster = Type.GetType(row["Tree_Prog_Start"].ToString());
    Form FensterStart = (Form)Activator.CreateInstance(Fenster);
    FensterStart.Show();

    Wenn die Form aber zB aus  dem Projekt 2 ist.

    Der row Text also  Projekt2.Form77  ist

    dann bekomme ich die Fehlermeldung, das der Typ nicht null sein darf.

    Was mache ich falsch ? bzw. wie muss ich den Aufruf einer Form in einem anderen Projket machen.

    Die Projekte habe ich alle verbunden. using ist auch vorhanden.

    Kann mir da jemand helfen ? Danke.


    Gruß Roland

    Donnerstag, 29. Mai 2014 16:33

Antworten

  • Hallo,
    du musst in dem String mit angeben, in welcher Assembly die Klasse (Form) steckt. Die Einzelheiten der Syntax erfährst du hier.

    Der String muss beispielsweise so aussehen:

    Type Fenster = Type.GetType("Projekt2.Form77, Projekt2");
    Das hinter dem Komma ist der Name der Assembly (Dateiname ohne Erweiterung). Wenn die Assembly im GAC registriert ist, musst du den vollständigen Namen angeben, siehe hier


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    • Als Antwort markiert Roland DE Donnerstag, 29. Mai 2014 19:07
    Donnerstag, 29. Mai 2014 16:58
    Moderator

Alle Antworten

  • Hallo,
    du musst in dem String mit angeben, in welcher Assembly die Klasse (Form) steckt. Die Einzelheiten der Syntax erfährst du hier.

    Der String muss beispielsweise so aussehen:

    Type Fenster = Type.GetType("Projekt2.Form77, Projekt2");
    Das hinter dem Komma ist der Name der Assembly (Dateiname ohne Erweiterung). Wenn die Assembly im GAC registriert ist, musst du den vollständigen Namen angeben, siehe hier


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    • Als Antwort markiert Roland DE Donnerstag, 29. Mai 2014 19:07
    Donnerstag, 29. Mai 2014 16:58
    Moderator
  • Hallo Tom,

    Danke für die Hilfe.


    Gruß Roland

    Donnerstag, 29. Mai 2014 19:09