Form wird nicht in OpenForms aufgelistet

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Form wird nicht in OpenForms aufgelistet

    Hei,

    Mein Problem passt glaube ich hier rein. :)

    Mein Projekt hat mittlerweile fast 1000MB und 47 Formen.

    Die letzte davon will einfach nicht in My.Application.OpenForms erschinen. Ob ich jetzt eine Instanz mache oder zehn. Keine einzige davon wird in My.Application.OpenForms gelistet obwohl alle Formen offen sind und ich mit denen Arbeiten kann.

    Was kann den die Ursache dafür sein?

    LG

    ausgelagert aus Auflistung ALLER Formulare ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Wird es aufgelistet, wenn Du es zu Programmstart instanziierst, anzeigst und Application.OpenForms prüfst?
    Was sagt Application.OpenForms.Count vor und nach Instanziierung und Anzeige des ominösen Forms an der vorgesehenen Stelle Deines Programms, also z.B. im FormShown-EventHandler des betroffenen Forms?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @DragsTrail Kannst Du das in einem rudimentären Testprojekt reproduzieren?
    Wenn ja, hänge das mal bereinigt und gezippt an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hei,

    reproduzierbar ist es eben nicht.

    Bild Error_1.. : Count sollte 3 sein. Sofort nach der Instanziierung.

    Bild_Error_2.. : Count sollte 5 sein. Hier habe ich ja, wie ersichtlich mit allen 4 Formen gearbeitet und der Count ist trotzdem 1.

    @ErfinderDesRades Genau. Alle anderen Ja. Diese nicht.

    Egal wann ich den Count mache, diese Formen werden einfach nicht angezeigt.

    Ich hab gerade eben andere ähnliche MainForms mit dieser verglichen. im VS Eigenschaftsfenster gibt es überhaupt keinen Unterschied zwischen diesen.

    LG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DragsTrail“ ()

    @DragsTrail Wähle mal diese eine Form in den Projekteigenschaften als Startform aus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    na, guck einer an! Es gibt ja doch Besonderheiten!
    Das verschwundene Form ist ein "Cat-Form" (was immer das genau ist)!
    Und sicherlich ist da eine mordsmässige Bibliothek eingebunden, wenn es überhaupt ein Windows.Forms.Form ist.

    zumindest mir sieht das in diesem Sinne doch bisserl besonders aus.

    Und es scheint ein Mdi-Child-Form zu sein, innerhalb eines Mdi-Parents.

    Ich weiss übrigens garnet, ob Mdi-ChildForms in der OpenForms-Auflistung gelistet werden.
    Glaub fast net, weil ein MdiChild ist ja nur ein Control, was auf einem Form aufsitzt.
    Na guck einer an. Wenn das nicht die Lösung ist. :)

    VB.NET-Quellcode

    1. Dim cnt As Integer = 0
    2. For Each frm As Frm_CAD In Form1.MdiChildren.OfType(Of Frm_CAD)
    3. cnt += 1
    4. Next
    5. MessageBox.Show("Number of open forms: " & cnt) ' PASST
    6. Return


    Die Form ist ein Child. Das habe ich aber auch erwähnt. Es ist auch eine Windows.Forms.Form. :) Und ja die Klassen und Module welche diese Form bedienen sind mittlerweile WAHRLICH ENORM. ;(

    Viele dieser Klassen und Module und vor allem das 3D sind auch in allen anderen Main-Childs eingebunden und doch werden diese ( ALLE ) in Application.Openforms gelistet.

    Kurios. Ich kann mit dieser Lösung, als auch mit der vorherigen ( eigene List(of Forms) ) leben. Interessant ist es trotzdem zu wissen was da los ist.

    LG

    DragsTrail schrieb:

    Das habe ich aber auch erwähnt.
    Wo?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Und wo sind die Bilder aus Post#5, über die hier offensichtlich geredet wird?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nach dem die Lösung klar war, habe ich die Bilder entfernt.

    Ich habe aus dem Bild Error1 die Message noch mal gepostet. Da steht das mit dem MDI Container. Ich dachte das es logisch anzunehmen währe, dass die zwei Instanzen von der anderen Form Child´s sind.

    Sorry. Mein Fehler.
    Bilder
    • 2023_06_10_18_29_34_Window.png

      72,17 kB, 651×349, 37 mal angesehen
    @DragsTrail Präzisiere Deine Ausgabe:
    Gib von allen Formen den Text (Titelzeile) und die Boolean-Properties MDI Container und MDI Child aus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!