|
Den Inhalt einer ListBox oder einer ComboBox können Sie nicht so
einfach in einem PropertyBag-Objekt speichern. Sie müssen statt
dessen die Elemente der Liste einzeln und dazu die Anzahl der
Elemente speichern:
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Dim l As Long
With List
For l = 0 To .ListCount - 1
PropBag.WriteProperty "List" & l, .List(l), ""
Next 'l
PropBag.WriteProperty "ListCount", .ListCount, 0
End With
End Sub
Das Wiedereinlesen der Elemente in eine ListBox oder ComboBox
geschieht analog dazu:
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Dim nCount As Long
Dim l As Long
nCount = PropBag.ReadProperty("ListCount", 0)
With List
For l = 0 To nCount - 1
.AddItem PropBag.ReadProperty("List" & l, "")
Next 'l
End With
End Sub
Sie können das Ein- und Auslesen auch in ein Standard-Modul
packen
Public Sub ListWriteProperties(List As Object, PropBag As PropertyBag)
' Code identsiche zu UserControl_WriteProperties
End Sub
Public Sub ListReadProperties(List As Object, PropBag As PropertyBag)
' Code identisch zu UserControl_ReadProperties
End Sub
und entsprechend aufrufen:
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
ListReadProperties List1, PropBag
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
ListWriteProperties List1, PropBag
End Sub
|