VB .NET Formular wiederherstellen

Hallo,
ich habe mit me.hide das Formular (form1) versteckt und es wurde gleichzeit ein neues formular (form2) geöffnet. nun möchte ich aber wenn form2 wieder geschlossen wird, dass sich form1 wiederherstellt.
habe es damit versucht:

Dim Form1 = New Form1
Form1.Show()

nur anscheinend wird damit ein neues formular geöffnet und das alte nicht wiederhergestellt, denn wenn ich dann das offene form1 schliesse, ist zwar kein fenster mehr offen aber im taskmanager von windows ist der prozess noch zu sehen. vielleicht kann mir jemand helfen der etwas mehr ahnung hat wie ich

danke im voraus

Dim Form1 = New Form1
Form1.Show()

Nur Show() ohne New ?

wie meinst du das? ich habe es so wie es da steht im programm und es funktioniert nur würed ich gerne wissen wie ich das versteckte fenster wiederherstellen kann? me.show() aus anderen formular geht ja nicht?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich glaub, das ist die meistgefragte Frage von VB’lern… :smile:
Die Anwendungen sind normalerweise so aufgebaut, dass Du eine steuernde Klasse hast, die je nach Situation die anzuzeigenden Dialoge instanziiert (also mit new erzeugt) und dann als modale (ShowDialog) oder nicht modale Dialoge (Show) anzeigt.

Da Du allgemein, wie Du selbst schon richtig festgestellt hast, keinen Zugriff von einem Dialog auf den anderen hast (wäre auch schlechtes Design), ist das der richtige Weg: Die Controllerklasse kennt ihre Dialoge und zeigt den richtigen an.

dim f1 as Form1
dim f2 as Form2
set f1 = new Form1()
set f2 = new Form2()
 
dim res as DialogResult
res = f1.ShowDialog()
if (res = DialogResult.OK) then
 f2.ShowDialog()
 f1.Show()
end if

sowas in der Art.
Erst wird f1 modal angezeigt, und wenn dieser Dialog OK liefert, dann wird f2 modal angezeigt und anschließend nochmal f1 nicht modal.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 Like

hmm klingt einleuchtend, so wird es wohl funktionieren :smile:)

danke !!

dim f1 as Form1
dim f2 as Form2
set f1 = new Form1()
set f2 = new Form2()

dim res as DialogResult
res = f1.ShowDialog()
if (res = DialogResult.OK) then
f2.ShowDialog()
f1.Show()
end if

sowas in der Art.
Erst wird f1 modal angezeigt, und wenn dieser Dialog OK
liefert, dann wird f2 modal angezeigt und anschließend nochmal
f1 nicht modal.

Gruß,
Martin