Pogramm stürtzt ab

  • Allgemein

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

    Pogramm stürtzt ab

    hey leute,

    seit ich diese zeile hier habe, stürtzt das programm immer ab wenn ich die form mit der Zeile aufrufe:

    VB.NET-Quellcode

    1. Private WithEvents desktopsymbol As New Panel With {.Width = Panel1.Width.ToString / 10, .Height = Panel1.height.ToString / 10}


    als fehlermeldung kommt dann:

    InvalidOperationException wurde nicht behandelt

    weiß jemand ne lösung? ich hatte das schon öfters das ich wegen einer private deklaration einen absturtz hatte.
    Diese Sachen werden vom Compiler so ausgewertet, dass sie noch vor dem Konstruktor aufgerufen werden. Du greifst aber auf ein Objekt (Panel1) zu, das erst im Konstruktor erstellt wird. Das gibt es zu diesem Zeitpunkt also noch nicht, was natürlich einen Fehler zur Folge hat.
    Übrigens würde normalerweise eine NullReferenceException geworfen werden, aber Microsoft hat bei der Erstellung von Forms irgendwie ein bisschen gemurkst, manchmal werden Fehler sogar gar nicht angezeigt.

    ident schrieb:

    erst im Konstruktor initialisiert.
    Nicht ganz.
    @OpferKlopfer:
    Sieh Dir den Inhalt der Datei FormX.Designer.vb und dei Sub InitializeComponent() an. Dort sind / werden alle Elemente der GUI
    1. deklariert: Friend WithEvents Button1 As System.Windows.Forms.Button
    2. instanziiert: Me.Button1 = New System.Windows.Forms.Button()
    3. initialisiert: Me.Button1.Size = New System.Drawing.Size(75, 23).
    Du kannst erst auf GUI-Elemente zugreifen, nachdem die Sub InitializeComponent() aufgerufen wurde, sie also instanziiert wurden (mit New eine Instanz erstellt wurden), davor sind sie Nothing.
    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!

    ident schrieb:

    das solltest du lieber den TE erläutern und nicht mir, mir ist es nämlich klar. Du solltest ihm auch erläutern was My.Settings macht, denn er hat explizit nicht danach gefragt My.Settings zu benutzen. Du schlägst ihm etwas vor das genau das gegenteil macht von dem was dem TE sein gewünschtes Verhalten entspricht, dann solltest du auch so gut sein um ihn zu erklären was My.Settings macht.
    Dein Spruch aus einem anderen Thread.
    Darf ich davon ausgehen, dass Du es auch dieses Mal möglicherweise verstanden hast, es jedoch dem TE nicht erläutern konntest?
    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!

    ident schrieb:

    alles ziemlich deutlich ausdrücken?
    Kannst Du die bitte mal abschreiben?
    Du kannst natürlich als Vorlage Deienn Quellcode verwenden.
    Und dann vewrgleich die bitte mit meinen Kommentaren in Post #7.
    Ich meine: Die drücken für einen Anfänger gar nix bis überhaupt gar nix 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!