Was ist der Unterschied zwischen Form1.Hide und Unload Me?

Ausblenden und Entladen sind Techniken in Visual Basic 6-VB.NET verhält sich anders. In VB6 können Sie den Unterschied deutlich sehen, indem Sie ein Formular mit einer CommandButton-Komponente und einer Testanweisung im Click-Ereignis erstellen. Beachten Sie, dass sich diese beiden Anweisungen gegenseitig ausschließen, sodass jeweils nur eine getestet werden kann.

Visual Basic 6-Entladeanweisung

Die Unload-Anweisung entfernt das Formular aus dem Speicher. In den meisten einfachen VB6-Projekten ist Form1 das Startobjekt, sodass das Programm auch nicht mehr ausgeführt wird. Um dies zu beweisen, codieren Sie das erste Programm mit Entladen.

Private Sub Command1_Click ()
   Entlade mich
End Sub

Wenn in diesem Projekt auf die Schaltfläche geklickt wird, stoppt das Programm.

Visual Basic 6 Hide-Anweisung

Führen Sie diesen Code in VB6 aus, um Hide zu veranschaulichen, damit die Hide-Methode von Form1 ausgeführt wird.

Private Sub Command1_Click ()
   Form1.Hide
End Sub

Beachten Sie, dass Form1 nicht mehr auf dem Bildschirm angezeigt wird, das Symbol "Ende" in der Debug-Symbolleiste jedoch anzeigt, dass das Projekt noch aktiv ist. Im Zweifelsfall zeigt der Windows Task-Manager, der mit Strg + Alt + Entf angezeigt wird, dass sich das Projekt noch im Ausführungsmodus befindet.

Mit einem versteckten Formular kommunizieren

Die Hide-Methode entfernt nur das Formular vom Bildschirm. Sonst ändert sich nichts. Beispielsweise kann ein anderer Prozess weiterhin mit Objekten im Formular kommunizieren, nachdem die Hide-Methode aufgerufen wurde. Hier ist ein Programm, das das demonstriert. Fügen Sie dem VB6-Projekt ein anderes Formular hinzu, und fügen Sie dann eine Timer-Komponente und diesen Code zu Form1 hinzu:

Private Sub Command1_Click ()
   Form1.Hide
   Form2.Show
End Sub

Private Sub Timer1_Timer ()
   Form2.Hide
   Form1.Show
End Sub

Fügen Sie in Form2 ein Befehlsschaltflächensteuerelement und diesen Code hinzu:

Private Sub Command1_Click ()
   Form1.Timer1.Interval = 10000 '10 Sekunden
   Form1.Timer1.Enabled = True
End Sub

Wenn Sie das Projekt ausführen, wird Form1 durch Klicken auf die Schaltfläche auf Form1 ausgeblendet und Form2 angezeigt. Wenn Sie jedoch auf die Schaltfläche in Form2 klicken, wird die Timer-Komponente in Form1 verwendet, um 10 Sekunden zu warten, bevor Form2 ausgeblendet und Form1 erneut angezeigt wird, obwohl Form1 nicht sichtbar ist.

Da das Projekt noch ausgeführt wird, wird Form1 weiterhin alle 10 Sekunden angezeigt - eine Technik, mit der Sie möglicherweise eines Tages einen Kollegen verarschen.