AW: UserForm - MouseOver - zentral auswerten
23.07.2013 13:03:33
fcs
Hallo Michi,
bist sicher, das sich um ein VBA-Userform handelt, diese kennen die Steuerelement-Ereignisse MouseMove, MouseUp und MouseDown aber nicht MouseOver.
Warum nutzt du nicht die VBA-Steuerelement-Eigenschaft "ControlTipText" für deine Zwecke?
Wenn es sich um VBA-Userform handelt, dann kannst du das MouseMove-Ereignis des Userforms selber nutzen, um das Steuerelement mit der Info auszublenden.
Gruß
Franz
In einem Excel-VBA-Userform könnte man das etwa so umsetzen.
Möglicherweise bekommt man die Ereignisauswertung über ein Klassenmodul auch zentral hin, da hab ich aber zu wenig Erfahrungen, speziell wenn wie hier verschieden Steuerelemente in einer Klasse behandelt werden sollen.
Beispiel-Code
'Userform Code
Private Sub prcMouseMove(strControl As String, strText As String, _
Optional bolOberhalb As Boolean = False)
'Blendet für Steuerelement mit Name strControl das Label "LabelInfo" mit _
dem Text strText ein
'Label wird entsprechend der Option bolOberhalb über oder unter dem Steuerelement angezeigt
Dim dblLeft As Double, dblTop As Double
With Me.Controls(strControl)
dblLeft = .Left
If bolOberhalb = True Then
dblTop = .Top - Me.LabelInfo.Height
Else
dblTop = .Top + .Height
End If
End With
With Me.LabelInfo
.Caption = strText
.Top = dblTop
.Left = dblLeft
.Visible = True
End With
End Sub
Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
prcMouseMove "ComboBox1", "Hier den namen auswählen", True
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
prcMouseMove "CommandButton1", "Press this Button"
End Sub
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
prcMouseMove "Label1", "I am a Label"
End Sub
Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
prcMouseMove "Textbox1", "Hier Vorname eingeben"
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
'blendet das Infolabel aus
With Me.LabelInfo
.Visible = False
.Caption = ""
End With
End Sub