scriptkiddy
Goto Top

Vb.NET Windows Forms richtig aufrufen und schließen

Hallo zusammen,

Ich habe mal eine Grundsätzliche Frage zu dem Window Handling in VB.NET.

Ich habe eine Anwendung die mehrere Fenster benötigt .. Also nicht Tabs oder ähnliches sondern wirkliche Fenster.
Mein Problem daran ist jetzt, dass ich bisher immer sozusagen die Fenster wohl nur ausblende... also mit Me.Hide() und dann das andere Fenster Show() nun das muss doch bestimmt auch anderst gehen ?!
Ansonsten wenn ich das Anmeldefenster bei erfolgreicher Anmeldung mit balblabla.Show() und dann das Anmeldefenster mit Me.Close() schließen möchte beendet er alles ....

Ich hoffe Ihr versteht einigermaßen was ich meine ansonsten bitte einfach Fragen ;) ich versuchs dann klarer zu machen

Danke

Gruß

Patrick

Content-Key: 162254

Url: https://administrator.de/contentid/162254

Printed on: April 18, 2024 at 23:04 o'clock

Member: mathe172
mathe172 Mar 08, 2011 at 21:07:45 (UTC)
Goto Top
Hallo scriptkiddy!

Meines Wissens(kanns grade nicht ausprobieren) schliesst die Sub Close() eine Form und alle untergeordneten...
Versuch mal eine Hauptform zu machen, die unsichtbar ist und nichts macht ausser die Fenster zu verwalten. Dann sollte erst nach schliessen dieser Hauptform alles zugehen...

Mathe172
Mitglied: 76109
76109 Mar 08, 2011 at 22:27:39 (UTC)
Goto Top
Hallo Patrick!

Zitat von @scriptkiddy:
Ansonsten wenn ich das Anmeldefenster bei erfolgreicher Anmeldung mit balblabla.Show() und dann das Anmeldefenster mit Me.Close()
schließen möchte beendet er alles ....
Ist ja auch logisch, weil Show im Prinzip ein Aufruf mit Rücksprungadresse bzw. Show (Call) und Close (Return) ist. D.h. die aufgerufene Form muss ja zum Aufrufer zurückkehren können. Wenn nun eine Form geschlossen wird, werden alle nachfolgenden Forms auch geschlossen.

Ist in etwa zu vergleichen mit Ordner erstellen/löschen. Stell Dir vor, Du hast einen Hauptordner und erstellts einen Unterordner mit weiteren Unterordnern und dann löschst Du übergeordnete Ordner oder gar den Hauptordner. Was denkst Du, passiert nun mit den Unterordnern? Und beim Verstecken (Hidden (Hide)) dagegen sind sie aber immer noch da.

Gruß Dieter
Member: mathe172
mathe172 Mar 09, 2011 at 16:02:55 (UTC)
Goto Top
Hallo nochmal,

am einfachsten wird es sein, wenn du dir überlegst, welches Formular von welchem abhängig sein soll, und dann definierst du die Form jeweils im übergeordneten Formular.
Also etwa:
'-------Code von Form1, welches "Besitzer" von Form2 ist--------  
Dim Form2 as new Form2 'oder wie die Klasse von Form2 auch heisst...  
'jetzt ist Form2 Form1 untergeordnet und wird erst dann geschlossen, wenn Form1 geschlossen wird oder es selbst  

Mathe172
Member: scriptkiddy
scriptkiddy Mar 10, 2011 at 10:30:59 (UTC)
Goto Top
Hallo zusammen,

danke erstmal für die ganzen Antworten.
wenn ich das richtig verstehe muss ich da ich ja ein "loginfenster" als Startformular habe,
nach erfolgreicher Anmeldung das loginfenster nur wieder mit .Hide() unsichtbar machen und die "uebersicht" öffnen.
und beim aufruf von weiteren fenster in der uebersicht die am besten dann direkt im uebersichtsfenster definieren.
Wie ist das denn wenn ich nun diese unterfenster schließe wird meine uebersicht trotzdem nicht selbstständig wieder sichtbar oder ? sondern muss dann im Prinzip
bei jedem Unterfenster beim close event angeben dass ubersicht wieder angezeigt wird ?

Gruß

Patrick
Member: mathe172
mathe172 Mar 10, 2011 at 15:16:18 (UTC)
Goto Top
Hallo,

Ja normalerweise musst du die Übersicht selbstständig wieder anzeigen.

Mathe172