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 06.11.2001

Diese Seite wurde zuletzt aktualisiert am 06.11.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...

Eigenschaften-Restaurator

Zurück...


Anzeige

(-hg) mailto:hg_restorepropbag@aboutvb.de

Leider ist dem PropertyBag-Objekt, das im ReadProperties-Ereignis eines UserControls übergeben wird, nur eine recht kurze Lebensdauer beschieden. Jeder Versuch, eine Referenz darauf in einer privaten Variablen im UserControl abzulegen und später darauf zuzugreifen, scheitert: Visual Basic hat das PropertyBag-Objekt schon längst wieder vernichtet. Sie werden nicht umhin kommen, den übergebenen Inhalt des PropertyBags selbst zwischenzuspeichern.

Dazu könnten Sie jede Menge an zusätzlichen privaten Variablen im UserControl anlegen, um dort den Ursprungswert jeder Eigenschaft einzeln für sich abzulegen. Sie könnten auch eine Collection verwenden, oder ein selbst instanziertes PropertyBag-Objekt (ab VB 6), um die Werte unter Schlüsseln darin abzulegen. Ab einer gewissen Anzahl von Eigenschaften wäre allerdings recht müßig, die Werte sowohl aus dem in ReadProperties übergebenen PropertyBag auszulesen als auch in einen anderen Speicher zu übertragen.

Einfacher ist es, gleich von vornherein den ganzen Speicher im in WriteProperties übergebenen PropertyBag abzulegen, und diesen in ReadProperties wieder auszulesen und anschließend so zu behandeln, als ob es das von VB gelieferte PropertyBag wäre.

Private mPropBag As PropertyBag
Private pMyProperty

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  Dim nPropBag As PropertyBag
  
  Set nPropBag = New PropertyBag
  nPropBag.WriteProperty "MyProperty", pMyProperty
  PropBag.WriteProperty "Contents", nPropBag.Contents
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  If mPropBag Is Nothing Then
    Set mPropBag = New PropertyBag
    mPropBag.Contents = PropBag.ReadProperty("Contents")
    UserControl_ReadProperties mPropBag
  Else
    pMyProperty = PropBag.ReadProperty("MyProperty")
  End If
End Sub

Zur Laufzeit können Sie die ursprünglichen Werte des PropertyBags, das sich ja nun in mPropBag befindet, jederzeit einzeln oder auch komplett wieder auslesen und somit die Anfangseinstellungen wieder herstellen - beispielsweise durch einen Klick auf das UserControl:

Private Sub UserControl_Click()
  UserControl_ReadProperties mPropBag
End Sub

Beispiel-Projekt RestorePropBag (restorepropbag.zip - ca. 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