Ich krieg das Formular nicht geschlossen

  • C#

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Hatori.

    Ich krieg das Formular nicht geschlossen

    Hallo,
    zunächst mal guten Tag. Ich bin neu hier und auch in C#, vergebt mir Fragen, über die manche nur lächeln, hab bisher nur PHP gemacht.

    Zu meinem Problem: Ich habe ein Login-Formular. Dieses wird laut Initialisierung des Main-Forms geöffnet, sobald das Programm gestartet wird. Ach ja, das ganze Ding setzt auf einer vorhandenen MySQL-Datenbank auf, mit der ich das Ganze in PHP schon fertig habe, jetzt will ich dafür aber auch eine Windows-Oberfläche.
    Ok, weiter: Ich kann das Formular ausfüllen und auch abschicken, die Daten werden korrekt mit der Datenbank abgeglichen. Nun soll eigentlich dieses Formular schließen und das Main öffnen. Es öffnet aber eine zweite Instanz des Login-Formulars. Wenn ich das Ding mit "Gewalt" schließe (oben rechts, das Windows-Schließen-Kreuz), geht es zu und das Main öffnet sich. sehr seltsam das.
    Ihr könnt gerne in den Code schauen liegt auf GitHub und ist im Login.cs zu sehen. Das ganze Teil ist auch noch im Anfangsstadium, so öffnet es z.B. auch das Main, wenn die falschen Daten eingegeben werden und das Form mit Gewalt geschlossen wird - nicht gut.

    *Topic verschoben*
    Grüße aus Berlin
    ---
    Kuroi Fenikkusu Kampfsportverein e.V.
    https://www.spandau-ninja.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Willkommen im Forum.

    Hatori schrieb:

    Ihr könnt gerne in den Code schauen liegt auf GitHub und ist im Login.cs zu sehen.
    Hast Du da auch n Link? GitHub ist groß.
    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.
    Hast Du da auch n Link? GitHub ist groß.

    Ich dachte, das ergibt sich, weil mans im Profil eintragen kann. Kein Problem, klar bits den:
    https://github.com/TrueHatori bzw hier gleich zum Projekt: github.com/TrueHatori/Society-Management
    Grüße aus Berlin
    ---
    Kuroi Fenikkusu Kampfsportverein e.V.
    https://www.spandau-ninja.de
    Das liegt ganz offensichtlich daran, dass Du beim Schließen eine zweite frm_Main erzeugst. Du hast doch schon eine, somit ist die zweite Instanziierung unnötig github.com/TrueHatori/Society-…nsverwaltung/Login.cs#L48.
    Was Du wahrscheinlich willst ist, dass sich das Dialog Fenster wie ein Dialog verhält. Siehe dafür

    C#-Quellcode

    1. ​DialogResult
    an docs.microsoft.com/de-de/dotne…ogresult?view=netcore-3.1. Dann bekommst Du bei

    C#-Quellcode

    1. ​ShowDialog()
    das Ergebnis zurück und kannst damit arbeiten. Also z.B. das Anzeigen von frm_Main oder das Beenden...
    Dafür gibt es im Notfall genug Beispiele im Internet anhand der OpenFileDialog-Klasse, falls Fragen auftauchen zum "Empfangen" des Ergebnis.

    VaporiZed schrieb:

    Das liegt ganz offensichtlich daran, dass Du beim Schließen eine zweite frm_Main erzeugst.


    Yup, hab ich gerade gefunden, trotzdem danke. Ich hab den falschen Block im if gehabt, die hab ich umgedreht. Statt der while-Schleife ist jetzt

    C#-Quellcode

    1. if(reader.HasRows)

    drin (auch grad gefunden. Das war aber nicht das wirkliche Problem, das liegt in der Main. Da frage, ob die ini-Datei vorhanden ist, wenn nicht, soll er Setup öffnen, wenn ja, das Login-Formular öffnen ... und da rennt er natürlich in die Endlos-Schleife, die setup.ini ist ja vorhanden.

    C#-Quellcode

    1. if (!File.Exists(GlobalVariables.input))
    2. {
    3. Setup_MySQL_Server setup = new Setup_MySQL_Server();
    4. setup.ShowDialog();
    5. }
    6. else
    7. {
    8. frm_Login login = new frm_Login();
    9. login.ShowDialog();
    10. }

    Trotzdem danke nochmal, da finde ich schon einen Ausweg ;)
    Grüße aus Berlin
    ---
    Kuroi Fenikkusu Kampfsportverein e.V.
    https://www.spandau-ninja.de