Labels mit einer Schleife 'kontrollieren'
08.11.2003 22:12:10
Martin
ich habe eine Userform, die Labels hat. Bis auf zwei Labels (als Überschrift-Feld benutzt), haben alle die Funktion, bei Klick darauf eine Prozedur aufzurufen.
Alle Labels sind in der gleichen Hintergrundfarbe gehalten und die Bezeichnung selbst ebenfalls. Als besonderes Gimmick habe ich diese Userform so gestaltet, dass bei MouseMove die Hintergrund- und die Schriftfarbe wechselt, um halt einen Effekt ähnlich dem onMouseOver und onMouseOut-Befehl in Javascript zu erhalten.
Da ich diese Arbeit nicht mit einer Schleife beherrsche, habe ich die eher umständlich gelöst, in dem ich bei jedem Label alle Label einzeln mit '
Private Sub label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)' formatiere.
Hier der Codes eines der Labels als Beispiel
Private Sub lMenuLeft_FR_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
With lMenuLeft_FR
.BackColor = RGB(0, 0, 97)
.ForeColor = RGB(255, 255, 255)
.Font.Bold = True
End With
'lMenuLeft_FR.BackColor = RGB(212, 208, 200)
'lMenuLeft_FR.ForeColor = RGB(0,0,0)
'lMenuLeft_FR.Font.Bold = False
lMenuLeft_GER.BackColor = RGB(212, 208, 200)
lMenuLeft_GER.ForeColor = RGB(0, 0, 0)
lMenuLeft_GER.Font.Bold = False
lMenuLeft_IT.BackColor = RGB(212, 208, 200)
lMenuLeft_IT.ForeColor = RGB(0, 0, 0)
lMenuLeft_IT.Font.Bold = False
lMenuLeft_NOR.BackColor = RGB(212, 208, 200)
lMenuLeft_NOR.ForeColor = RGB(0, 0, 0)
lMenuLeft_NOR.Font.Bold = False
lMenuLeft_ESP_A.BackColor = RGB(212, 208, 200)
lMenuLeft_ESP_A.ForeColor = RGB(0, 0, 0)
lMenuLeft_ESP_A.Font.Bold = False
lMenuLeft_ESP_E.BackColor = RGB(212, 208, 200)
lMenuLeft_ESP_E.ForeColor = RGB(0, 0, 0)
lMenuLeft_ESP_E.Font.Bold = False
lMenuLeft_SWE.BackColor = RGB(212, 208, 200)
lMenuLeft_SWE.ForeColor = RGB(0, 0, 0)
lMenuLeft_SWE.Font.Bold = False
lMenuLeft_CH.BackColor = RGB(212, 208, 200)
lMenuLeft_CH.ForeColor = RGB(0, 0, 0)
lMenuLeft_CH.Font.Bold = False
lMenuLeft_FFII.BackColor = RGB(212, 208, 200)
lMenuLeft_FFII.ForeColor = RGB(0, 0, 0)
lMenuLeft_FFII.Font.Bold = False
lMenuLeft_ALL.BackColor = RGB(212, 208, 200)
lMenuLeft_ALL.ForeColor = RGB(0, 0, 0)
lMenuLeft_ALL.Font.Bold = False
End Sub
Das mal 18 multipliziert, gibt viel Holz.
Nun die Frage. Wie kann ich diese Aufgabe am elegantesten in einer Schleife lösen, 2 der Labels dürfen dabei nicht miteinbezogen werden.
Danke für alle Tips
Gruss,
Martin