none
MDI-Parent Formular kann nicht mehr als Startformular ausgewählt werden RRS feed

  • Frage

  • Hallo zusammen,

    Ich hab' in meinem Projekt mehrere Formulare und unter anderem auch eines (Hauptfenster), welches ein MDIContainer ist und auch mein Startformular sein soll. Das ging die letzten Jahre(!) auch völlig problemlos und urplötzlich taucht es nicht mehr in der Liste der möglichen Startformulare auf. Ich hab' keine Ahnung, was ich geändert haben könnte, dass das ganze nicht mehr läuft.

    Wenn ich in die Datei Applcation.Designer.vb gehen und in der Methode

    Protected Overrides Sub OnCreateMainForm()
      Me.MainForm = Global.Projekt.Hauptfenster
    End Sub
    
    

    das MainForm per Hand auf mein Hauptfenster setze, erhalte ich den Fehler:

    Fehler 1 "Hauptfenster" ist ein Typ in "Projekt" und kann nicht als Ausdruck verwendet werden. 

    schreibe ich noch ein New davor geht alles gut.

    Protected Overrides Sub OnCreateMainForm()
      Me.MainForm = new Global.Projekt.Hauptfenster
    End Sub
    
    

    (Bei Formularen die als mögliche Startformulare aufgeführt sind ist das new nicht erforderlich)

     Hat jemand eine Idee??

    Danke,

    Marcus

    Freitag, 18. Februar 2011 08:38

Antworten

  • Hallo Marcus,

     aber die Ursachen würden mich schon interessieren.

    Ursachen können sein, dass ..

    • der Konstruktor für das Formular abhanden gekommen ist
    • der Konstruktor nicht "Public" war
    • kein parameterloser Konstruktor zur Verfügung stand
    das sind zumindest Szenarien, die ein Formular reproduzierbar aus der Auswahlliste verschwinden lassen. Ob eines davon auch bei Dir zutreffend war, lässt sich jetzt wohl nicht mehr sagen.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Montag, 21. Februar 2011 09:37
    Moderator

Alle Antworten

  • Hi Marcus,
    die VB Umgebung im Studio nimmt Dir im Hintergrund einige Arbeit, indem das
    "Application Framework" selbst Instanziierungen ausführt und über den
    Klassenbezeichner den Zugriff auf Objekte organisiert. Vielleicht hast Du
    das Häkchen in den Eigenschaften des Projektes entfernt? Wenn ja, dann musst
    Du Dich um die Instanziierungen selbst kümmern und in der Sub Main den
    Verweis auf die Instanz Deines Startformulars bei Application.Run angeben.
     
    --
    Viele Grüße
    Peter
     
     
    Samstag, 19. Februar 2011 12:36
  • Hallo Peter,

    danke für den Tipp. Leider trifft es bei mir nicht zu. Beide Häkchen sind gesetzt und andere Formulare kann ich problemlos auswählen. Als Workaround habe ich das Formular einfach nochmal neu erstellt und alle Elemente (Controls und Code) rüberkopiert. Das neue kann ich wieder auswählen. Solange das nicht nochmal passiert ist das ein gangbarer (wenn auch nerviger) Weg. Es ist zwar eine Lösung für das Problem, aber die Ursachen würden mich schon interessieren.

    Danke,

    Marcus

    Montag, 21. Februar 2011 09:03
  • Hallo Marcus,

     aber die Ursachen würden mich schon interessieren.

    Ursachen können sein, dass ..

    • der Konstruktor für das Formular abhanden gekommen ist
    • der Konstruktor nicht "Public" war
    • kein parameterloser Konstruktor zur Verfügung stand
    das sind zumindest Szenarien, die ein Formular reproduzierbar aus der Auswahlliste verschwinden lassen. Ob eines davon auch bei Dir zutreffend war, lässt sich jetzt wohl nicht mehr sagen.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Montag, 21. Februar 2011 09:37
    Moderator
  • Hallo Thorsten,

    Heureka!

    Der zweite Punkt war/ist es. Ich hatte das original Formular noch aufgehoben und der Konstruktur war dort als Friend gekennzeichent. Nachdem ich den Modifier gelöscht hatte, tauchte das Formular wieder in der Liste auf!

    Danke!

     

    Marcus

    Montag, 21. Februar 2011 10:35