Form reagiert nicht auf me.close() oder me.hide()

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Form reagiert nicht auf me.close() oder me.hide()

    Hey,

    ich möchte das Form1 sich schließt und keinen weiteren Code mehr ausführt,
    dann soll es Form2 öffnen.

    Habe Me.Close() bei Form1 gemacht (load) und direkt danach Form2.Show()
    Form2 öffnet sich aber Form1 bleibt immernoch offen, und führt weiter die Codes aus was ich aber nicht will.

    Das habe ich eingstellt in den Eigenschaften:



    Wie gesagt, Form1 bleibt offen und führt weiter die Codes aus, und Form2 öffnet sich, keine Ahnung woran es jetzt liegen könnte..
    Gegenfrage: Warum stellst Du Form2 nicht als Startformular ein?
    Im Load-EventHandler (EH) Close() aufzurufen könnte ein Problem sein.
    Form2 durch Form2.Show aufzurufen klingt verdächtig nach Nichtinstanziierung. @RodFromGermany wird da zweifellos hellhörig (oder hellsichtig?) Aber selbst mit Initialisierung würde man das Form2-Disposen wohl nicht mehr erreichen können.
    Was wird denn noch für Code in Form1 ausgeführt, wenn Du schon im Load-EH Form1 wieder schließen willst?
    Ich hab das mal nachgebastelt und im Form1-Load-EH nen Timer gestartet, der nach ein paar Sekunden ne MessageBox anzeigt, also

    VB.NET-Quellcode

    1. Public Class FrmMain
    2. Dim AnotherFormular As New Form2
    3. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    4. MessageBox.Show("bla")
    5. End Sub
    6. Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. Timer1.Start()
    8. AnotherFormular.Show()
    9. Me.Close()
    10. End Sub
    11. End Class

    Da kommt keine MessageBox. Daher stimmt irgendwas bei Deinem Code nicht, behaupte ich mal.
    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.

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

    Ich weiß nicht genau was du vor hast, daher mal geraten und ins Blaue geholfen. Instanziere die Form sauber und öffne die weitere Form modal.


    Dim frm As New FormXY
    frm.ShowDialog()
    MessageBox.Show(„foo“)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    MrFish schrieb:

    Form2.Show()
    Verstehe dies: Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Ansonsten poste mal Dein bereinigtes Projekt als ZIP (ohne Binaries).

    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!