Ein Mouse-Over-Effekt für VB-Controls ist standardmässig bei Visual-Basic leider nicht vorgesehen. Um beispielsweise ein Command-Button beim Überfahren mit der Maus im Aussehen zu verändern (siehe Inernet-Hyperlinks) genügen schon ein paar Zeilen Programmcode.
Erstellen Sie für das Beispiel ein Formular mit einem Frame-Control und platzieren darin zwei Buttons "Command1" und "Command2". Setzen Sie die Style-Eigenschaft der Command-Buttons auf "1 - grafisch".
Fügen Sie nachfolgenden Code in den Codeteil der Form ein:
Code:
Option Explicit
Private lastControl As CommandButton
Private ButtonName As String
Private hover As Boolean Private Sub Form_Load()
' Hintergrundfarbe der Buttons setzen
Command1.BackColor = vbYellow
Command2.BackColor = vbYellow
End Sub ' --- Ereignis beim Verlassen der Buttons und Eintreten ins Framefeld
Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
' Wenn sich Maus zuvor nicht über ein Button bewegt hat
If hover = False Then Exit Sub
' Maus hat sich über Buttons bewegt
hover = False
' Button-Standardwerte wiederherstellen
lastControl.BackColor = vbYellow
lastControl.FontUnderline = False
End Sub ' --- Ereignis Maus bewegt sich über "Command1"
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
' Hintergrundfarbe ändern
Command1.BackColor = vbRed
' Buttontext unterstreichen
Command1.FontUnderline = True
' Buttonmerker setzen
Set lastControl = Command1
' Maus hat sich über ein Button bewegt
hover = True
End Sub ' --- Ereignis Maus bewegt sich über "Command2"
Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
' Hintergrundfarbe ändern
Command2.BackColor = vbRed
' Buttontext unterstreichen
Command2.FontUnderline = True
' Buttonmerker setzen
Set lastControl = Command2
' Maus hat sich über ein Button bewegt
hover = True
End Sub
QUELLE