Mit mehreren Formen arbeiten Verfasst am: 15.06.2009, 16:45
Mit mehreren Formen arbeiten
1. Allgemeines
Da man immer wieder mit mehreren Formen arbeiten muss, aber viele nicht wissen wie man das am besten macht, hab euch mal ein kleines Tutorial geschrieben. Mehrere Formen braucht man vorallem dann, wenn ein weiteres Fenster aufmachen will und man das alte trotzdem noch sehen soll (z.b ein Optionsmenu) , bzw die Fenster so verschieden sind, dass es zu viel Aufwand wäre, alle Objekte per .Visible sichtbar bzw unsichtbar zu machen.
2. Verwendung
Zuerst muss man natürlich eine neue Form hinzufügen, per Rechtsklick auf das akutelle Projekt im Projektmappenexplorer -> Hinzufügen -> Windows Form, dann noch Namen eingeben -> Fertig
Ich nenne unsere Form mal Optionsmenu, die Hauptform ist bei mir Mainform
Wir könnten nun einfach Form2.Show und Form2.Close verwenden und fertig, aber die Methode ist nicht sehr praktisch, zumal die 2 Form dann nicht wirklich zu ist, sondern noch im Hintergrund läuft und einen Haufen an Speicher verbraucht.
Daher deklarieren wir uns erstmal eine Variable als Form:
Code:
<br />Public Form2 As Optionsmenu
Nun kommen die beiden Subs zum Öffnen bzw. Schließen der Form:
Code:
Private Sub OpenForm2()<br /> Form2 = New Optionsmenu()<br /> Form2.Show()<br />End Sub<br /><br />Private Sub CloseForm2()<br /> Form2.WindowState = FormWindowState.Minimized<br /> Form2.Close()<br />End Sub
Aufrufen geht dann einfach so:
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e _<br /> as System.EventArgs) Handles Button1.Click<br />OpenForm2()<br />End Sub
Bzw. das ganze mit CloseForm2
Das Minimieren dient dazu, dass der Garbage Collector die Form aus dem Ram schaufelt, sonst würde die Applikation immer mehr Ram brauchen, umso öfter man die 2. Form aufruft und wieder schließt.
Es muss auch andere Wege geben sie aus dem Ram zum Entladen, aber das ist die einzig mir bekannte ^^ Seltsamerweiße bleibt der Ramverbrauch trotzdem sehr hoch, wenn man die 2. Form vor dem Minmieren, per .Visible unsichtbar macht. Daraus bin noch nicht so schlau geworden, wenn mir wer weiterhelfen kann, wäre ich dankbar, dann kann ich das Tutorial verbessern ^^
Das ganze lässt sich natürlich auf beliebig viele Formen erweitern.
3. Von einer Form Daten an eine Andere senden
Nun das ist im Grunde kein Problem, soll es an eine Variable sein, muss diese nur Public deklariert sein, also z.b dieser Code in der Mainform:
Code:
Public Passwort As String
Geändert wird die Variable von der 2. Form (Optionsmenu) so:
Code:
Mainform.Passwort = "1337"
Wenn es sich um eine Eigenschaft eines Objektes handelt, macht man es genauso, einfach in der 2. Form
Code:
Mainform.Textbox1.Text = "vb-x.org"
Ist also wirklich einfach
Dieses Tutorial wurde von Bahamut geschrieben! _________________