|
Vielleicht haben Sie schon öfters Steuerelemente gesehen, die zur Design-Zeit ihren Namen anzeigen. Vor allem bei Steuerelementen, die eigentlich keine eigene sichtbare und funktionale Oberfläche haben sollen (und darum zur Laufzeit unsichtbar sind), ist die Anzeige des Steuerelement-Namens gar nicht so unpraktisch. Natürlich können Sie ein solches Darstellungsverhalten auch bei Ihren UserControls erreichen.
Das Ereignis AmbientChanged des UserControls informiert über die Änderung einer der Ambient-Eigenschaften, zu denen auch der Steuerelement-Name ("DisplayName") gehört. Damit der Name automatisch bei jedem Anzeigen des Steuerelements während der Design-Zeit korrekt angezeigt wird, nehmen wir die Zuweisung - beispielsweise an ein Label-Steuerelement - im Show-Ereignis des UserControls vor.
Private Sub UserControl_AmbientChanged(PropertyName As String)
Select Case LCase$(PropertyName)
Case "displayname"
UserControl_Show
End Select
End Sub
Private Sub UserControl_Show()
If Not Ambient.UserMode Then
lblName.Caption = Ambient.DisplayName
UserControl_Resize
End If
End Sub
Die Variante, dass eine ListBox zur Design-Zeit ihren Namen anzeigt, zur Laufzeit jedoch standardmäßig leer ist, ist auf ähnliche Weise nachzubilden. Sie brauchen lediglich im Show-Ereignis den Namen als Element in die ListBox einfügen, natürlich nachdem Sie sie vorher vorsorglich geleert haben.
Private Sub UserControl_Show()
If Not Ambient.UserMode Then
With lst
.Clear
.AddItem Ambient.DisplayName
End With
End If
End Sub
|