Von Form2 aus Form1 schließen

  • VB.NET

Es gibt 34 Antworten in diesem Thema. Der letzte Beitrag () ist von Derfuhr.

    Von Form2 aus Form1 schließen

    Hey.

    Ich habe auf Form1 einen Button der "Schließen" heißt. Wenn man den anklickt öffnet sich Form2
    mit einer TextBox und einem Button. Wenn man in der TextBox nun das richtige Passwort eingibt
    und dann den Button auf Form2 anklickt soll sich nicht nur die Form2 öffnen sondern auch Form1,
    ich bekomme es aber einfach nicht hin?

    VB.NET-Quellcode

    1. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
    2. If TextBoxX1.Text = My.Settings.password Then
    3. Application.Exit()
    4. Else
    5. MsgBox("Falsches Passwort!", vbCritical)
    6. End If
    7. End Sub


    Habe es mit Me.Close ; Form1.Close, Close(), Application.Exit probiert es geht einfach nicht das muss doch irgendwie möglich sein?
    Die Lösung mit Application.Exit sollte eigentlich funktionieren. Aber versuchs doch mal alternativ mit einer Rückgabe nach Form1 und schließe die Anwendung von dort.
    Musst dann deinen Code nur wie folgt ändern.

    In Form2

    VB.NET-Quellcode

    1. Private Sub ButtonX1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonX1.Click
    2. If TextBoxX1.Text = My.Settings.password Then
    3. Me.DialogResult = Windows.Forms.DialogResult.OK
    4. Me.Hide()
    5. Else
    6. MsgBox("Falsches Passwort!", vbCritical)
    7. End If
    8. End Sub


    In Form1

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If Form2.ShowDialog = Windows.Forms.DialogResult.OK Then Application.Exit()
    3. End Sub
    Natürlich mit dem korrekten Namen für den Button.

    backtothetoast schrieb:

    Oder auch "Me.Hide()"

    In Form2 gäbe dies aber eindeutig nicht das gewünschte Ergebnis.

    @Creatiive:
    Ich verstehe deine Frage nicht,
    du willst Form1 und Form2 schließen?

    Nur diese Formen, oder die ganze Anwendung.
    Wenn du die ganze Anwendung meinst stimmt Application.Exit() schon.
    Wenn du jedoch eine 3. Form (oder ähnliches) geöffnet lassen willst,
    benutz doch einfach (in Form2) Form2.close(), Form1.hide().

    bzw.

    VB.NET-Quellcode

    1. If TextBoxX1.Text = My.Settings.password Then
    2. Me.DialogResult = Windows.Forms.DialogResult.OK
    3. Me.Hide()
    4. Form1.Hide()
    5. Else
    6. MsgBox("Falsches Passwort!", vbCritical)
    7. End If
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    ich hab garnix verstanden.
    im titel gehts um schließen, in der frage dann ums öffnen, und da gibts ein Form, und noch ein Form, und wenn man auf den Button klickst öffnet sich ein Form (ein drittes, also?) - achnee, dann öffnet sich Form2. Komisch, dass sich das Form öffnet, wo der Button drauf ist, der es öffnet. 8|

    Also ziemlich unbestimmbar, was da eiglich konzipiert ist.

    abwarten, ob sichs klärt, tätich vorschlagn.
    Nochmal:

    Ich habe:
    - Form1
    - Form2

    Auf Form1 befindet sich 1 Button
    Wenn ich den Button anklicke => Form2.Show

    Form1 bleibt zu dem Zeitpunkt aber auch noch offen, soll es ja auch.
    Auf Form2 befindet sich dann 1 TextBox + 1 Button. In der TextBox muss man
    das richtige Passwort eingeben und dann auf den Button klicken damit Form1
    geschlossen wird. (Form2 soll in dem Zeitpunkt natürlich mit geschlossen werden,
    wird ja nicht mehr benötigt da die Form1 geschlossen wird)

    Auf Form1 habe ich nämlich auch das "X" deaktiviert, die Form soll also nur per Button
    schließbar sein wenn man auf Form2 das richtige Passwort eingibt.

    Jetzt verstanden?

    Gather schrieb:

    Ich verstehe deine Frage nicht,
    du willst Form1 und Form2 schließen?


    Nur diese Formen, oder die ganze Anwendung.
    Wenn du die ganze Anwendung meinst stimmt Application.Exit() schon.
    Wenn du jedoch eine 3. Form (oder ähnliches) geöffnet lassen willst,
    benutz doch einfach (in Form2) Form2.close(), Form1.hide().
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Habe es mit Me.Close ; Form1.Close, Close(), Application.Exit probiert
    es geht einfach nicht das muss doch irgendwie möglich sein?

    Guck mal ganz oben.

    Hier nochmal der Code:

    VB.NET-Quellcode

    1. If TextBoxX1.Text = My.Settings.password Then
    2. ...
    3. Else
    4. MsgBox("Falsches Passwort!", vbCritical)
    5. End If


    Was für "..." einsetzen? Die aktuelle Form (Form2) soll geschlossen werden aber Form1 auch bei
    richtiger Eingabe des Passwortes.
    Also ich hab das jetzt mal schnell getestet so wie ich es verstanden habe. Und das klappt

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Form1.Close()
    3. Me.Close() 'Form2
    4. End Sub
    Übrigens habe ich noch eingestellt:

    Modus für das Herunterfahren:
    Beim schließen des letzten Formulares

    Hat es damit noch was zu tun? Das muss ich jedenfalls so haben, sonst könnte man ja einfach Form1 schließen und muss bei Form2 zum schließen kein Passwort eingeben.
    Mit welchem Code?
    Bitte etwas ausführlicher.
    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!