Fehlermeldung: Fehler beim Erstellen des Fensterhandles.

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Fehlermeldung: Fehler beim Erstellen des Fensterhandles.

    Edit by ErfinderDesRades: (Thema verschoben) Bitte richtiges UnterForum wählen!


    Hallo,

    ich habe zwei unabhängige Forms, die beide in der Load-Routine relativ viele Controls dynamisch anlegen.

    Jedes lässt sich alleine fehlerfrei öffnen. Sobald allerdings eines der beiden Forms bereits geöffnet ist, kommt beim Öffnen des zweiten Forms der genannte Fehler.



    Eine nicht behandelte Ausnahme des Typs "System.ComponentModel.Win32Exception" ist in System.Windows.Forms.dll aufgetreten.
    Fehler beim Erstellen des Fensterhandles.


    Das Programm bricht dabei immer in einer Zeile ab, in der einem dynamisch erzeugten Control die Parent-Eingenschaft übergeben wird. Allerdings nicht immer beim selben Control.



    Entschuldigt die etwas wage Fehlerbeschreibung. Den kompletten Code zu posten, würde den Rahmen sprengen.
    Vielleicht hat ja doch jemand ähnliches schon gehabt oder eine Idee?!?!?



    MfG
    henk

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

    @Henk36:: Für den Fall, dass diese Controls zu Denem Projekt gehören: Mach da mal alle zu Public Class xyz.
    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!
    generell wird vom Erstellen der Oberfläche per Code abgeraten - dafür ist der Designer da.
    Weil neben der Unübersichtlichkeit solchen Codes kann man dabei auch viel falsch machen - wie du siehst.

    also ich würde erstmal danach gucken, ob die selbst-generiererei wirklich nötig ist, ansonsten bleibt beim derzeitigen Informationsstand nur "viel Spaß!" zu wünschen übrig ;)
    Hmmm ...

    Ein Anlegen der Controls per Designer kommt absolut nicht in Frage ... dafür ist die Sache (die Inhalte des Forms) zu variabel.

    Vielleicht hat ja doch noch jemand eine Idee???

    Der grundsätzliche Aufbau klappt ja völlig reibungslos. Mir ist nicht klar, in wieweit sich die Forms gegenseitig stören können ...



    LG

    Henk36 schrieb:

    kommt absolut nicht in Frage
    Poste mal 2 oder 3 verschiedene in Frage kommende Designs.
    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!
    Ich weiß, dass Du das so nicht meintest ROD, aber ein Design kann ich nicht posten - bzw. wüsste nicht wie, da es zu flexibel ist.



    Vielleicht noch als Ergänzung:

    Das folgende, dynamische erzeugt Panel wir 27 problemlos im Rahmen der Load-Routine erzeugt. Beim 28. kommt der Fehler und es bleibt in der 3. Zeile, bei der Parent Übergabe, hängen mit dem oben genannten Fehler.

    ????????????

    Quellcode

    1. Dim P As new Panel
    2. P.Top = TP_top
    3. P.Parent = Me.Panel_Klausurplan
    4. P.Name = "Panel_Klausurplan_" & m.ToString
    5. P.Left = 0
    6. P.Width = Me.Panel_Klausurplan.Width
    7. P.Height = 50P.BackColor = Color.Transparent
    8. P.Visible = True
    9. [...]




    Im Übrigen ist es dabei völlig egal, ob ich das Form oder ein Unter-Panel als Parent angebe! ... immer Abbruch nach Nr. 28 :cursing: ;( :wacko: :wacko:

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

    @Henk36:: Kannst Du bitte mal so viel Code posten, dass ich das hier sofort nachvollziehen kann?
    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!
    Ich wills versuchen:



    Quellcode

    1. Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. [...]
    3. Call Me.Aktualisieren()
    4. End Sub
    5. Public Sub Aktualisieren()
    6.  
    7. [...]
    8. For each D as Date in [...]
    9. '1) Tages-Panel zeichnen
    10. Dim P As new Panel
    11. P.Top = TP_top
    12. P.Parent = Me.Panel_Klausurplan
    13. P.Name = "Panel_Klausurplan_" & m.ToString
    14. P.Left = 0
    15. P.Width = Me.Panel_Klausurplan.Width
    16. P.Height = 50
    17. P.BackColor = Color.Transparent
    18. P.Visible = True
    19.  
    20. '1.1) Schreiber_Summe_Label erstellen
    21. Dim ss As New Label
    22. ss.Parent = P
    23. ss.Left = 284
    24. ss.Top = 5
    25. ss.Width = 35
    26. ss.Height = 15
    27. ss.TextAlign = ContentAlignment.MiddleRight
    28. ss.ForeColor = Color.DarkGrayss.BorderStyle = BorderStyle.None
    29. ss.Font = Me.Label_Master1.Font
    30.  
    31. '1.1) Tages-Datum Label erstellen
    32. Dim L As New Label
    33. L.Left = 320
    34. L.Top = -1
    35. L.Width = P.Width - 320
    36. L.Height = 22L.TextAlign = ContentAlignment.MiddleCenter
    37. L.BackColor = Color.LightGray
    38. L.Parent = P
    39. L.BorderStyle = BorderStyle.FixedSingleL.Font = Me.Label_Master_datum.Font
    40. L.BringToFront()
    41.  
    42. [...]
    43. m = m + 1
    44. Next
    45. Me.Panel_Klausurplan.Height = TP_top + 100
    46. End Sub

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

    Henk36 schrieb:

    Ich wills versuchen:
    Kläglich gescheitert. ;(
    Mach Dir ein neues Projekt auf, kopiere Deinen Code da rein und sorge dafür, dass dies läuft.
    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!
    :O) ABSOLUT!!! :O((((

    Gute Idee, aber chancenlos. Zu komplex und nicht ohne allen anderen Strukturen reproduzierbar.Es läuft wirklich darauf hinaus, das ein paar doofe Panel erzeugt werden.

    Die Fehlerquelle liegt meiner Meinung nach nicht in der Routine selber, sondern es muss irgendwas "Grundsätzliches" sein. Der Kram läuft ja, wenn das Form alleine auf ist.





    Wird mich noch mal auf Fehlersuche begeben ... meld mich ..

    DANKE schon mal für Dein Bemühen!

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

    @Henk36:: Du solltest trotzdem mal probieren, dies Problem in einem kleinen Testprojekt zu reproduzieren.
    Da lassen sich viele andere Einflüsse ausschalten bzw. einzeln abtesten.
    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!