Ich habe ein Anmeldeformular, das ich schließen muss, ohne dass die gesamte Anwendung beendet wird. Ich habe versucht, Me.Close() und Me.Hide() zu verwenden. Das Anmeldeformular wird auch als Hauptformular verwendet.
Antworten
Zu viele Anzeigen?Ich hoffe das macht Sinn....
Es scheint, als ob Sie ein VB.Net-Projekt haben und Ihr Login-Formular Ihr 'Startup-Formular' ist. Wenn Sie dieses Formular schließen, denkt Ihre Anwendung, dass es vorbei ist; aber Sie möchten wirklich nach dem Schließen des Login-Formulars Maßnahmen ergreifen.
Wenn Sie das Eigenschaftenfenster für das Projekt öffnen, können Sie auf dem Registerkarte "Anwendungen" den 'Shutdown-Modus' festlegen. Der Standard ist, wenn das 'Startup Formular geschlossen wird'. Ändern Sie es auf 'Wenn das letzte Formular geschlossen wird'.
Sie können auch hier Anwendungsebene Veranstaltungen hinzufügen. http://msdn.microsoft.com/en-us/library/f2bys999(v=vs.80).aspx
Wenn Sie mit dem, was Sie tun, weitermachen; Ihr Login-Formular muss ein anderes Formular erstellen, bevor es geschlossen wird, oder Ihre App wird geschlossen. Sie können das tun; aber es ist wahrscheinlich sauberer, die Anmelde-Logik in das Anwendungs-Startereignis zu verschieben (siehe Link für weitere Details).
Im Startereignis können Sie den Anmeldescreen anzeigen, das Ergebnis abrufen, entscheiden, ob Sie das Hauptformular für Ihre Anwendung anzeigen möchten, usw., usw...
Dies hängt davon ab, wo Sie versuchen, das Formular zu schließen oder zu verstecken. Wenn Sie versuchen, das Formular innerhalb des Formulars selbst zu schließen oder zu verstecken, dann erledigen Me.Close() und Me.Hide() den Job. Wenn Sie versuchen, ein Formular von einem anderen Formular wie Ihrem Hauptformular aus zu schließen oder zu verstecken, müssen Sie auf die Formularexemplar verweisen Beispiel:
frmAbout.Close()
frmAbout.Hide()
Ich hoffe, das hilft.