ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 18.10.2001

Diese Seite wurde zuletzt aktualisiert am 18.10.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Entladehemmung

Zurück...


Anzeige

(-hg) mailto:hg_formhideonly@aboutvb.de

Es ist durchaus denkbar, dass es sinnvoll ist, ein Form nicht gleich zu entladen, nachdem es vom Anwender geschlossen worden ist. Etwa, wenn Sie nach dem Schließen eines modal geöffneten Forms noch Werte aus Eigenschaften der Steuerelemente darauf oder aus Eigenschaften des Forms selbst auslesen möchten.

Ein solcher Zugriff nach dem Entladen würde nämlich nicht mehr die vorher vorhandenen Werte liefern, da das Form ja schon entladen war und damit auch dessen Steuerelemente und ihre Werte nicht mehr zur Verfügung stehen. Vielmehr würde das Form samt allen Steuerelementen komplett neu geladen - was in diesem Fall sicher nicht beabsichtigt wäre.

Das Ereignis QueryUnload eines Forms bietet genau die gesuchte Möglichkeit, unter bestimmten Bedingungen den bereits eingeleiteten Entladevorgang abzubrechen. Die "Ursache" für das Entladen wird im Parameter UnloadMode angeliefert. Der Wert im Falle des Schließens über die Schließen-Schaltfläche des Forms oder über den Schließen-Punkt in seinem Systemmenü ist vbFormControlMenu. In diesem Fall setzen Sie den Wert des ebenfalls übergebenen Parameters Cancel auf True und signalisieren damit den Wunsch nach einem Abbruch des Entladens. Stattdessen verbergen Sie das Form manuell mit einem Me.Hide:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Select Case UnloadMode
    Case vbFormControlMenu
      Cancel = True
      Me.Hide
  End Select
End Sub

Da der Aufruf zum modalen Anzeigen eines Forms nicht nur beim Entladen, sondern auch schon beim Verbergen des Forms zurückkehrt (es geht weiter mit der Ausführung des nachfolgenden Codes), können Sie nun an dieser Stelle die oben beschriebenen Zugriffe vornehmen und dann das Form per Code endgültig entladen. Da in diesem Fall der im QueryUnload-Ereignis im Parameter UnloadMode übergebene Wert ein anderer ist, nämlich vbFormCode, wird die "Entladehemmung" nicht wirksam - das Form wird nun tatsächlich entladen.

' ...
Form2.Show vbModal
'    und nun zum Beispiel:
Debug.Print Form2.Text1.Text
Unload Form2

Eine weitere praktische Anwendung sehen Sie im Artikel "Dialog-Aufruf mit Methode".


Beispiel-Projekt FormHideOnly (formhideonly.zip - ca. 3,3 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer